标签:无效 for循环语句 退出 功能 while循环 匹配 getch constant 合并
C语言中的条件分支语句,分为if语句和switch语句两类分支语句。
例:公司的员工销的提成工资为每销售一件提成20元,如果销售额大于100件,则奖励500元。
int main(int argc, char* argv[]) { int n = 0,sal = 0; puts("请输入你本月的销售量:"); scanf("%d",&n); sal = n*20; if(n>100) sal += 500; printf("你本月的销售提成为:%d\n",sal); return 0; }
例:公司的员工销的提成工资为:若每月销售额小于100件,每销售一件提成20元;如果每月销售额大于等于100件,每销售一件提成30元。
1 int main(int argc, char* argv[]) 2 { 3 int n = 0,sal = 0; 4 puts("请输入你本月的销售量:"); 5 scanf("%d",&n); 6 if(n<100) 7 sal = n*20; 8 else 9 sal = n*30; 10 printf("你本月的销售提成为:%d\n",sal); 11 return 0; 12 }
例如多级分成制度
1 int main(int argc, char* argv[]) 2 { 3 int n = 0,sal = 0; 4 puts("请输入你本月的销售量:"); 5 scanf("%d",&n); 6 if(n<100) 7 sal = n*20; //销售100件以内,每件按20元提成 8 else if(n>=100 && n<200) 9 sal = n*25; //销售100-200件,每件按25元提成 10 else if(n>=200 && n< 300) 11 sal = n*30; //销售200-300件,每件按30元提成 12 else 13 sal = n*40; //若能销售300件以上每件按40元提成 14 printf(“你本月的销售提成为:%d元\n",sal); 15 return 0; 16 }
例如,下面的代码
1 puts("请输入你的学分:(A-D)"); 2 char c = getchar(); 3 switch(c) 4 { 5 case ‘A‘: 6 puts("你的成绩优秀!"); 7 break; 8 case ‘B‘: 9 puts("你的成绩良好!"); 10 break; 11 case ‘C‘: 12 puts("你的成绩中等!"); 13 break; 14 case ‘D‘: 15 puts("你的成绩较差!"); 16 break; 17 default: 18 puts("你输入的是无效的学分!"); 19 break; 20 }
C语言中的循环语句,分为while语句和for语句两类分支语句。
1 初始化区; 2 while(条件判断区) 3 { 4 核心运算区; 5 。。。。。 6 递增区; 7 }
1 例如:求60到100之间所有数字的加和。 2 int main() 3 { 4 int i = 60,sum = 0; 5 while(i<=100) 6 { 7 sum += i; 8 ++i; 9 } 10 printf("结果是:%d\n",sum); 11 return 0; 12 }
特点是先执行再判断,核心运算区无条件地执行一次。
1 初始化区; 2 do 3 { 4 核心运算区; 5 。。。。。 6 递增区; 7 } while(条件判断区); 8 9 注意语句尾部要带有分号;
1 int main() 2 { 3 int sum=0,i = 6; 4 do 5 { 6 sum=sum+i; 7 ++i; 8 }while(i<=10); 9 10 printf("结果是:%d\n",sum); 11 return 0; 12 }
for语句相当于将while语句的三个区域,用分号间隔全放在循环头部的小括号里:
1 for(初始化区;条件判断区;递增区) 2 { 3 核心运算区; 4 }
递增区是在每次循环结束时执行:第一次进入循环之前,递增区并不执行
当条件区为空时代表无条件循环:
1 例如:for(初始化区;;递增区) 2 等价于for(初始化区;1;递增区)
for的括号内3个区全都可为以空:
1 初始化区; 2 for(;;) 3 { 4 核心运算区;递增区; 5 }
1 例如:求60到100之间所有数字的加和。 2 int main() 3 { 4 int i,sum; 5 for(i=60,sum=0;i<=100;++i) 6 { 7 sum += i; 8 } 9 printf("结果是:%d\n",sum); 10 return 0; 11 }
break是结束整个循环体:
1 例如:找出20到50之间,第一个19的整数倍的数字。 2 int main() 3 { 4 int i = 20; 5 while(i<50) 6 { 7 if(i%19==0) 8 break; 9 ++i; 10 } 11 printf("i=%d\n",i); 12 return 0; 13 }
等价写法:
1 等价写法: 2 int main() 3 { 4 int i = 20; 5 while(i<50 && i%19!=0) 6 ++i; 7 printf("i=%d\n",i); 8 return 0; 9 }
实际上凡是break语句的条件,都可以提取到while语句的条件区。
但是break语句使循环体看上去更清晰,便于阅读和代码维护。
return是比break还强的中断:直接退出中断该函数,return后面所有语句,包括循环体之外的语句全都不执行。
1 例如:找出20到50之间,第一个19的整数倍的数字。 2 int main() 3 { 4 int i = 20; 5 while(i<50) 6 { 7 if(i%19==0) 8 { 9 printf("i=%d\n",i); 10 return 1; 11 } 12 ++i; 13 } 14 printf("很抱歉,没有找到匹配的数字\n",i); 15 return 0; 16 }
直接跳出函数,连循环体外的printf函数也未被执行。
结束本次循环进入下一次循环
如果是while语句,递增区必须放在continue之前;continue经常跟for语句连用效果更好,因为for语句的递增区是每次循环后自动执行。
1 int main() 2 {//求20到70之间13的整数倍的数字及个数 3 int i = 20,sum=0; 4 while(i<70) 5 { 6 ++i; 7 if(i%13) 8 continue; 9 ++sum; 10 printf("i=%d\n",i); 11 } 12 printf("总共%d个\n",sum); 13 return 0; 14 }
1 int main() 2 {//等价写法: 3 int i = 20,sum=0; 4 for(;i<70;++i) 5 { 6 if(i%13) 7 continue; 8 ++sum; 9 printf("i=%d\n",i); 10 } 11 printf("总共%d个\n",sum); 12 return 0; 13 }
标签:无效 for循环语句 退出 功能 while循环 匹配 getch constant 合并
原文地址:http://www.cnblogs.com/kele-dad/p/7710803.html