RedZero9 发表于 2022-5-11 10:40

C语言条件语句及循环语句

C语言语句
1、分支语句 有两种,第一种是负责实现双分支的if语句,另一种是负责实现多分支的开关语句switch。
1.1 if语句
(1)只有一个分支
if(条件表达式){
   语句块             // 条件表达式成立 (即值为true)时执行该语句块
}
例子:
   int a;   

a = 0;   

// 如果a等于0时执行大括号中的语句。否则不执行。   
//由于上面的语句把a的值改为0了,现在条件表达式“a=0”是成立的,所以a=a+1会被执行。   
if(a = 0){   
   a = a + 1;   
}
(2)有两个分支
   if(条件表达式){   
   语句块1            // 条件表达式成立(即值为true)时执行语句块1   
}   
else{   
   语句块2            // 条件表达式不成立时执行语句块2   
}
例子:
   int a;   

a = 0;   

if(a < 0){   
   a = a + 1;             // a小于0时执行   
}else{   
   a = a - 1;             // a不小于0(即a大于等于0)时执行   
}
(3)有多个分支(类似switch语句)
   if(条件表达式1){   
   语句块1            // 条件表达式1成立(即值为true)时执行语句块1   
}   
else if(条件表达式2){   
   语句块2            // 条件表达式2成立时执行语句块2   
}   
else if(条件表达式3){   
   语句块3            // 条件表达式3成立时执行语句块3   
}   
...   
else{   
   语句块n            // 以上条件表达式全部不成立时执行语句块n   
}
例子:
   int a;   
int b;   

a = 3;   
b = 9;   

if(a = 3){   
   a = a + 1;             // a = 3时执行   
}else if(b = 9){   
   b = b + 1;             // b = 9时执行   
}   
if(a > 3 || b > 9){   
   a = a - 1;            // a>3或者b>9 时执行   
   b = b - 1;   
}else{   
   a = 0;                   // 以上条件都不满足时执行   
   b = 0;   
}   
1.2 switch语句
   switch(表达式){   
   case 表达式1:   
         语句块1         // 表达式的值等于表达式1 则执行语句块1   
         break;   
   case 表达式2:   
         语句块2         // 表达式的值等于表达式2 则执行语句块2   
         break;   
         ...      
      case 表达式n:   
         语句块n         // 表达式的值等于表达式n 则执行语句块n   
         break;      
   defualt:   
         语句块n         // 表达式的值不等于以上所有的表达式 ,则执行defualt(默认)语句块n   
}
表达式n的类型应与表达式值的类型一致,可以是整形或字符型。假设已定义“int a;”整形变量a,那么表达式“a”、“a+4 ”、“a*(a+4)”等的值都为整形数,这时表达式就应该用整形数。
例子1:
int a = 3;
switch(a-2){
   // 当a-2=1时执行“case 1”下的语句。
   case 1:
         a = a+1;
         break;   
   // 当a-2=2时执行“case 2”下的语句。
   case 2:
         a = a+2;
         break;
   // 如果上述情况都不满足,则执行“defualt”下的语句。
   defualt:
         a = a+3;
}
注意:每个case语句块后面的“break;”语句的意思是跳出switch语句,若没有“break;”语句则程序会继续执行下去。例如,若去掉“case 1”末尾的“break;”语句,那么程序在执行完语句“a = a+1;”后,程序将继续执行“case 2”里的语句“a = a+2;”;若“case 2”末尾也没有“break;”语句,那么“default”里的语句也将被执行。
例子2:
char ch=getcher();
swich(ch)
{case 'a':printf("test10000");break;
case '8':printf("test100231")break:
case 'b':printf("test20000");break;
case '...' :    .............;break;
可以是键盘中输入某个字符作为判断条件。
2、循环语句
2.1 do...while语句
   do{   
   循环体   
}while(循环条件表达式);
首先“循环体”被执行一次,然后判断“循环条件表达式”是否为真;“循环条件表达式”为假则循环结束;若“循环条件表达式”为真则再次执行“循环体”接着再次判断“循环条件表达式”是否为真...如此循环执行直到“循环条件表达式”为假才结束循环。
do...while语句的特点是无论“循环条件表达式”值的真或假,“循环体”至少被执行一次。
例子:
   int i = 0;   

do{   
   i = i + 1;   
}while( i < 10 );
语句 “i = i + 1;” 被循环执行10次后i的值为10,这时”循环条件表达式“ ”i < 10“ 不再为真,循环结束。
2.2 while语句(循环时变量不会递增,不会像for一样有i++)
   while(循环条件表达式){   
   循环体   
}
首先判断 “循环条件表达式” 是否为真,假则结束循环;若 “循环条件表达式” 为真则执行 “循环体” 接着再次判断 “循环条件表达式” 是否为真...如此循环执行直到 “循环条件表达式” 为假才结束循环。
while语句与do...while语句的不同点是,除非“循环条件表达式”为值,否则不会执行“循环体”。
例子:
   int i = 0;   

while( i < 10 ){   
   i = i + 1;   
}
语句 “i = i + 1;” 将被被循环执行10次。
2.3 for语句
   for(表达式1; 循环条件表达式; 表达式2){   
   循环体   
}
for循环体语句比较复杂同时也是最灵活的循环语句。for语句的执行顺序是:
(a) 执行 “表达式1”
(b) 判断 “循环条件表达式” 是否为真,不为真则跳到步骤(e)
(c) 执行 “循环体”
(d) 执行 “表达式2”,跳到步骤(b)
(e) 循环结束
例子:
   int i = 10;   
int n = 0;   

for( i=1; i<=10; i=i+1){   
   n = n * i;   
}
2.4 循环控制语句
在任何循环语句的循环体中都可以使用 “continue;” 和 “break;” 语句对循环进行相关控制。
(1) “continue;” 语句
该语句的作用是放弃本次循环,并马上进入下一次循环。
把 2.3 的例子修改如下:
   int i = 10;   
int n = 0;   

for( i=1; i<=10; i=i+1){   
   if( i == 5 )   
         continue;   

   n = n * i;   
}
这段程序最终算得n为1~4,6~10这9个数的乘积。因为第5次循环(即i=5)时执行了 “continue” 语句,导致这次循环被放弃,进而 "continue" 下面的 “n = n * i;” 语句没被执行到。
(2) “break;” 语句
该语句的作用是结束整个循环。
把 2.3 的例子修改如下:
   int i = 10;   
int n = 0;   

for( i=1; i<=10; i=i+1){   
   if( i == 5 )   
         break;   

   n = n * i;   
}
这段程序最终算得n为1~4这4个数的乘积。因为第5次循环(即i=5 )时执行了 “break” 语句,导致整个循环被结束,进而第6次、第7次...第10次循环都不会被执行了。
页: [1]
查看完整版本: C语言条件语句及循环语句