求助
*語句的一般格式
if(表達式)
{語句組1;}
[else
{語句組2;} ]
(1)if語句中的“表達式”必須用“(”和“)”括起來。
(2)else子句(可選)是if語句的一部分,必須與if配對使用,不能單獨使用。
(3)當if和else下面的語句組,僅由一條語句構成時,也可不使用復合語句形式(即去掉花括號)。
*語句的執行過程
(1)缺省else子句時
當“表達式”的值不等于0(即判定為“邏輯真”)時,則執行語句組1,否則直接轉向執行下一條。
(2)指定else子句時
當“表達式”的值不等于0(即判定為“邏輯真”)時,則執行語句組1,然后轉向下一條語句;否則,執行語句組2。如圖4-1(b)所示。
*語句的嵌套與嵌套匹配原則
if語句允許嵌套。所謂if語句的嵌套是指,在“語句組1”或(和)“語句組2”中,又包含有if語句的情況。
if語句嵌套時,else子句與if的匹配原則:與在它上面、距它最近、且尚未匹配的if配對。
為明確匹配關系,避免匹配錯誤,強烈建議:將內嵌的if語句,一律用花括號括起來。
if語句里面可以嵌套for循環嗎
C語言里if語句里是可以嵌套for循環的(if語句里可以放C語言里的任意的執行語句)。
舉例說:
char yn;
int i;
printf("需要打印1到10之間的所有奇數嗎(Y/N)?\n");
scanf("%c",&yn);
if(yn=='Y'||yn=='y')
{
for(i=1;iprintf("%d ",i);
printf("\n");
}
else
printf("那就不打印了\n");
c語言程序:使用一個if選擇語句和一個for循環語句寫一個程序
享
#include<stdio.h>
int isprime(int);
void even(int);
main()
{ int a;
scanf("%d",&a);
if(a%2==0)even(a);
else printf("!",a);
}
void even(int x)
{int i;
for(i=2;i<=x/2;i++)
if(isprime(i))
if(isprime(x-i))
{printf("%d=%d+%d\n",x,i,x-i);return;}
}
int isprime(int b)
{ int i;
for(i=2;i<=b/2;i++)
if(b%i==0)return 0;
return 1;
}
c語言if語句用法
for(i=1;i<10;i++)
if(i>max) max=i;
else if(i<min) min=i;
//到這for語句結束,第二個if是else 里面的,它也只能做用到第一個分號,下一個分號就不在循環里,
printf("%d",i);
這樣改:
for(i=1;i<10;i++)
{if(i>max) max=i;
else if(i<min) min=i;
printf("%d",i);
}這樣就好了,,,printf就在for循環體里面了,。就是加一個大括號
c語言for循環嵌套if語句
兩種方法,一種是重新賦值,程序段如下
for(i=0;i<Maxi;i++)
for(j=0;j<Maxj;j++)
if(true)
{
i=-1;
break; //從此處跳出本層循環,由于賦值i=-1,執行完
//break語句之后,執行外層循環i++指令,使得
//i=0;外層循環相當于重新開始,j的值無需處理,
//因每次進入內層循環,j值均會被for語句賦初值0
}
第二種方法是無條件轉移指令:
sign: for(i=0;i<Maxi;i++)
for(j=0;j<Maxj;j++)
f(true) goto sign; //條件為真跳轉至sign語句
一般情況下,應當避免使用goto無條件跳轉指令,因為很多人認為程序可讀性會因為goto的引入而變差,但是在不少情況下goto可以使得程序代碼簡單,效率提高,個人認為適當使用goto指令并無不可,樓主可自己作出選擇。
轉載請注明出處華閱文章網 » if語句的用法循環語句