当前位置:
文档之家› 第六讲-C语言三种结构-顺序结构选择结构循环结构
第六讲-C语言三种结构-顺序结构选择结构循环结构
三项说明:
• 无论条件是否为真,总要先判断(执行)一遍条件 • 如果语句只有一条,则大括号可以省略 • 关于程序的缩排
选择结构(二)
B、
if(condition){ statements1; } else { statements2; } /*双分支选择结构*/
功能:首先判断condition是否为真, 如果为真,则执行statements1, 否则,执行statements2
? 对两个数据按升序排序并输出
三项说明:
输入两个数,输出其中的最大数(最小数)
• 无论条件是否为真,总要先判断(执行)一遍条件 • 如果语句只有一条,则大括号可以省略 • 关于程序的缩排
选择结构(三)
C、 if(condition1){ statements1; } else if(condition2){ statements2; } else if(condition3){ statements3; } else if(condition4){ statements4; } . . . /*至多执行一句*/ D、 if(condition1){ statements1; } else if(condition2){ statements2; } else if(condition3){ statements3; } else if(condition4){ statements4; } else { statements5; } /*必然执行一句*/
2、省略condition语句 原因: 条件不固定 例如: int a,b=0; for(a=1;;a++){ b+=a; if(a>=10)break; } printf(“%d\n”,b); 注意:分号不能省
与循环结构有关的关键字
break 用法: break; 功能:跳出当前循环 例如:在128—365之间找出三个15的倍数并输出 continue
for循环的变体形式
1、省略init语句 原因: 初始化已经完成 例如: int a=1,b=0; for(;a<10;a++)b+=a; printf(“%d\n”,b); 注意:分号不能省 3、省略step语句 原因: 控制变量每次变化不一样 例如: int a,b=0; for(a=1;a<10;){ b+=a; if(a==3)a+=2; else a++; } printf(“%d\n”,b); 注意:分号不能省
作业
书面作业: P86 P108 1.2 1.2 1.3 1.3 1.4 1.4 2 2.1 2.2 2.4
附加题:
1、int a=2,b=3,c; if(a>b);c=a+b;
程序段执行完毕后c的值是多少? 2、int a=10,b=0; while(a>0){ b+=a; a++; if(a>20)break; } 描述该段程序的任意数的阶乘
四项说明:
•无论条件是否为真,总要先判断(执行)一遍
•在跳出循环体之前,还要再执行一遍条件 •如果语句只有一条,则大括号可以省略 •程序的缩排
循环结构(二)
B、 do{ statements; } while(condition);
/*直到型循环*/ 功能:先执行循环体statements, 然后再判断条件; 如果为真,则继续执行; 否则,跳出循环体
? int a=2,b; b=a>0?0:1;
逗号表达式
用逗号连接的表达式称为逗号表达式 逗号表达式的值是最后一个表达式的值 例如:int a=2,b=3,c=4; c=(a+b,b+c,c-a); /*不要给a,b赋值*/ printf(“%d\n”,c); /*c=2*/
顺序结构
顺序结构是程序设计中的三种基本结构之一
用法:continue;
功能:继续判断当前循环的条件
例如:计算1+2+3+5+6+7+8+9+10的和 while(a<24){ c*=a; c++; if(a==12)continue; b+=a; a++; }
for(i=0;i<10;i++){ c*=a; c++ if(i==5)continue; j+=I; }
注意
例如:
#include”stdio.h” void main(){ int a=1,sum=0; do{ sum+=a; a++; } while(a<101); printf(“The sum is:%d”,b); }
循环结构(三)
C、 for(init;condition;step){ statements; }
例如:#include”stdio.h” void main(){ int a=1234,b; b=a%10*1000; b+=a/10%10*100; b+=a/100%10*10; b+=a/1000; printf(“%d”,b); }
又如: #include”stdio.h” main(){ int i,j,k,n; printf(“‘water flower’number is:”); for(n=100;n<1000;n++){ i=n/100;/*分解出百位*/ j=n/10%10;/*分解出十位*/ k=n%10;/*分解出个位*/ if(i*100+j*10+k==i*i*i+j*j*j+k*k*k){ printf(“%-5d”,n); } } printf(“\n”); }
?
输入学生百分制成绩,转换成等级制输出 三项说明: •无论条件是否为真,总要先判断(执行)一遍 •如果语句只有一条,则大括号可以省略 •程序的缩排
选择结构(四)
E、switch(常量表达式){ case 常量1: statements1; break; case 常量2: statements2; break; case 常量3: statements3; break; case 常量4: statements4; break; default: statements5; break;
第六讲 三种结构
目标
掌握条件运算符和逗号表达式 顺序结构 选择结构 循环结构
条件运算符
条件运算符是C语言中唯一的一个三目运算符 表达式1?表达式2:表达式3; 例如: int a=2,b; b=a>0?++a:a; printf(“%d\n”,b); b=a<0?++a:a; printf(“%d\n”,b);
功能: 1、首先执行init语句 2、判断condition 3、如果为真,则执行statements;如果为假,则跳出 4、将statements执行完后,再执行step;转第二步
说明:
• 两个分号,在任何情况下,一个都不能少 • 大多数情况下,要避免构成死循环 • 如果语句只有一条,则大括号可以省略 • 程序的缩排
?
1、输入等级制分数,转化为 百分制输出 2、制作一个简单的菜单
}
循环结构(一)
A、 while(condition){ statements; } /*当型循环*/ 求1—100的和 推广 功能:首先判断条件是否为真,如果为真, 则执行语句块,执行完毕后, 再次判断条件是否为真; 如果为假,则跳出循环体。 求数轴任意区间的数的和
选择结构(一)
选择结构能够使程序根据条件做出相应的判断,使程序选择执行某一段代码块, 它使程序具有了智能
A:
if(condition){ statements; } /*单分支选择结构*/
?
输入年份,判断是否是闰年 输入字符检测
功能:首先判断条件是否为真,如果为真,则执行语句; 否则,什么也不做, 继续往下执行
3、根据输入字母输出字符串 若输入m,则输出“Good mornning!” 若输入n, 则输出“Good afternoon!” 若输入h, 则输出“Hello!” 若输入e, 则输出“Good evening!”
4、程序设计 求1!+2!+3!+4!+……+10!的值