一 C语言的控制语句
<1>单分支判断 if语句
<2>多分支判断 if...else , if ...else if ....
<3>多分支选择 switch ..... case ....
<4>循环语句 for while do--while
<5>控制循环的语句 break continue
<6>跳转语句 goto
1.单分支判断
if(条件){
C语句;
....
}
注意:
条件为真的时候,执行 { }里面的语句
练习:
输入一个字符,如果是大写的字符,则输出它对应的小写字符, 如果是小写的字符,则输出它对应的大写字符
2.多分支判断
if(条件1){
...
}else if(条件2){
...
}else if(条件3){
..
}
条件1是否成立 成立:后面的判断将不会继续 不成立:接下来判断条件2
注意:只要有一个条件成立,后面的判断将不会进行
练习:
输入一个成绩,判断成绩的等级
如果成绩 < 0 或 > 100 则提示用户输入的是非法成绩
如果是:
[0-60) 则输出 A等级
[60-70) 则输出 B等级
[70-80) 则输出 C等级
[80-100]则输出 D等级
3.真和假分别处理
二选一:
if(条件成立){
...
}else{
...
}
-----------------------------------------------------------------------------------------------------
if(条件1成立){
}else if(条件2成立){
}....{
}else{
}
注意:else 一定是和它上面最近的if配套使用
练习:
输入两个数(data1,data2),如果data1 < data2则将data2值自增加后赋值给data1,否则将data1自减后赋值给data,最后输出data1和data2的值
4.if语句可以嵌套使用
if(条件1){
if(条件2){
a ++;
}
}
===>
if(条件1 && 条件2){
a ++;
}
----------------------------------------------------
if(条件1){
b --;
if(条件2){
a ++;
}else{
...
}
}
练习:
输入一个整数,如果这个数小于0,则将这个数增加1,然后判断它是否==0,如果等于0,将这个数自减1,否则将它自增加1 最后,输出这个数的值
5.多分支选择
switch(表达式)
{
case 确定的整型值1:
C语言语句;
...
break;
case 确定的整型值2:
C语言语句;
...
break;
....
default:
C语言语句;
...
break;
}
运行规则:
计算完表达式的值后,决定和哪一个case匹配,匹配上的case,会执行其后面的C语言语句,直到遇到break语句或return 语句 或 结束的"}",如果所有的case都不匹配,则执行default后面的C语言语句。
注意: case后面可以写的是 -> 数字,字符,宏常量,枚举类型的成员
练习:把成绩等级判断,改写成switch --- case?< 0 或 > 100 非法成绩
[0-60) [60-70) [70-80) [80-100)
switch(score)
{
//错误
case if(score >= 0 && score < 60):
printf("A");
break;
}
61/10 =>6 62 / 10 => 6
81/10 =>8 87 / 10 => 8
switch(score / 10)
{
}
6.循环语句----for
for(表达式1 ; 表达式2 ; 表达式3)
{
C语言语句;
....
}
注意:
<1>只要表达式2的值为真,则循环继续,直到表达式2的值为假,循环结束
<2>三个表达式都可以省略,当表达式2省略的时候,for默认为永真[死循环]
练习:
<1>将1 --- 100中的奇数做累加和,最后输出for(i = 1;i <= 100;i ++)
{
如果是一个奇数则累加
}
<2>找出所有的水鲜花数
满足水鲜花数的条件:
a.是一个三位数 三位数的范围 [100-999]
b.个位的立方 + 十位的立方 + 百位的立方 == 这个数 123 个位:123 % 10 => 3 十位:(123 / 10) % 10 => 2 百位:123 / 100 => 1
7.for语句的嵌套
注意:外层for循环执行一次,内层的for循环要循环结束后,接着执行外层循环
任务:
1.输出9 * 9 乘法表
2.输入一个年份,判断是否是润年 [0 - 2015,输出所有是润年的年份]