写给我班女生的选择和循环结构

一丶if语句
if语句有以下两种形式:
if (条件) 语句
if (条件) 语句1 else 语句2
第一种形式表示如果条件测试为真,执行条件后的语句,否则什么也不做。
第二种形式表示如果条件测试为真时,执行语句1,否则执行语句2。

第一种if语句执行流程执行流程:
1.首先判断关系表达式看其结果是true还是fales。
2.如果是true就执行语句体
3.如果是false就不执行语句体

if语句流程图
if (3>2){
printf("你是人间四月天“);
}
return 0; 运行结果 : 你是人间四月天
if (3){
printf("你是人间四月天“);
}
return 0; 运行结果 : 你是人间四月天

if (0){
printf("你是人间四月天“);
}
return 0; 运行结果 : 什么也没有
只要if语句后面的表达式成立或非零,就执行其下语句,表达式为0的时候即假,就不执行其下的程序了

条件部分原则上应该是一个计算结果为逻辑值的关系表达式或逻辑表达式,语句部分是对应于某种情况所需要的处理语句,如果很简单,只需要一条语句就能完成,则可放入此语句,如果处理相当复杂,需要很多语句才能完成,可以用一个语句块。
所谓语句块就是一组用花括号{ }括起来的语句,在语法上相当于一条语句,语句块也称为复合语句。

if语句的第二种格式:if…else
if (关系表达式){
语句体1:
}else{
语句体2:
}
执行流程:
1.首先判断关系表达式看结果是ture还是false。
2.如果是ture就执行语句体1。
3.如果是false就执行语句体2。
if...else语句流程图

第二种形式:
例如:判断某一年是否是闰年,如果年份能整除400,是闰年,或者年份能整除4但不能被100整除,是闰年。

//  定义变量year为年份,
int year,flag;
printf("请输入年份:");
scanf("%d",&year);
flag=year%4==0&&year%100!=0||year%400==0;
// 如果条件为真执行if语句,否则执行else语句
if(flag==1)
printf("%d是闰年",year);
else
printf("%d不是闰年",year);
return 0;

}
判断语句3-- if…else if…else
if (判断条件){
执行语句1;
}else if (判断条件2){
执行语句2;
}

}else if (判断语句n){
执行语句n;
}else{
执行语句n+1;
}
执行流程:
首先判断关系表达式1看起结果是true还是false
如果是true就执行语句体1
如果是false就继续判断关系表达式2看其结果是true还是false
如果是true就执行语句体2
如果是false就继续判断关系表达式n看其结果是true还是false

如果没有任何关系表达式为ture,就执行语句体n+1

if...else if...else程序执行流程图
例如,根据考试成绩,判断学生等级
90-100 优秀 80-89好 70-79良 60-69及格 60以下不及格
int score;
printf(“请输入考试成绩:”);
scanf("%d",&score);
//判断关系表达式1看起结果是true还是false
//如果是true就执行语句体1
//输入考试成绩必然要大于0和小于100,如不满足执行if语句
if(score<0||score>100)
printf(“输入成绩格式错误”);
//如果是false就继续判断关系表达式2看其结果是true还是false
//如果是true就执行语句体2
else if(score>=90&&score<=100)
printf(“你的成绩属于优秀”);
//如果是false就继续判断关系表达式n看其结果是true还是false
//…
else if(score>=80&&score<=90)
printf(“你的成绩属于好”);
else if(score>=70&&score<=80)
printf(“你的成绩属于良”);
else if(score>=60&&score<=70)
printf(“你的成绩属于及格”);
//如果没有任何关系表达式为ture,就执行语句体n+1
else
printf(“你的成绩属于不及格”);
return 0;

二 丶Switch语句
Switch语句格式:
switch(表达式)
{ case 常量值1: 语句体1; break;
case 常量值2: 语句体2; break;

default: 语句体n+1; break; }
执行流程:
1.首先计算出表达式的值
2.其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。
3.最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
Switch语句
例如,例如小明来到了寺庙向佛祖求一个婆姨,佛祖说给你六张牌,你抽到那张牌,我就把她赐给你当婆姨,小明高兴的合不拢嘴。
在这里插入图片描述
0 1 2 3 4 5
int jqk;
printf(“你抽到的牌号是:”);
scanf("%d",&jqk);
//首先计算出表达式的值
switch(jqk){
//其次,和case依次比较,一旦有对应的值,就会执行相应的语句,
//在执行的过程中,遇到break就会结束。
case 0:printf(“你选择的牌号是%d号小姐 -如花”,jqk);break;
case 1:printf(“你选择的牌号是%d号小姐 -凤姐”,jqk);break;
case 2:printf(“你选择的牌号是%d号小姐 -柳岩”,jqk);break;
case 3:printf(“你选择的牌号是%d号小姐 -朱茵”,jqk);break;
case 4:printf(“你选择的牌号是%d号小姐 -网红模特”,jqk);break;
case 5:printf(“你选择的牌号是%d号小姐 -迪丽热巴”,jqk);break;
//如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
default:
printf(“智者不入爱河”);
break;}
return 0;
switch语句使用注意事项:
1.多个case后面的数值不可以重复
2.switch的语句格式前后顺序可以颠倒,而且break还可以省略,匹配哪一个casa就从哪一个位置向下执行,知道遇到了break或者整体结
束为止。

三丶循环语句
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
1丶for 循环语句
for(初始化表达式①; 布尔表达式②; 步进表达式④)
{ 循环体③ }
for循环语句执行流程
执行顺序:①②③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行的语句
④循环后,循环条件所涉及变量的变化情况
for语句流程图
例如,小明把好不容易搞到的女朋友惹生气了,女朋友让他抄写10000遍“对不起,我错了,原谅我吧”才肯原谅他,可以利用for循环语句。
int i;
for(i=0;i<10000;i++)
printf(“对不起,我错了,原谅我吧!\n”);
return 0;

循环结构的基本组成部分,一般可以分为4部分。
int i;
for{
1.初始化语句,再循环结束开始最初执行,而且只能做唯一一次
i=0;
2.条件判断,如果成立,则循环继续,如果不成立,则循环退出
i<=10000;
3.循环体,重复要做的事情内容,若干行语句
printf(“对不起,我错了,原谅我吧!\n”);
4.布进语句,每次循环之后都要进行的工作,每次循环结束之后都要执行一次
return 0;

2丶wiile语句
格式:
初始化表达式①
while(布尔表达式②)
{ 循环体③ 步进表达式④
}
while循环语句格式:
执行顺序:①②③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句。
④循环后,循环变量的变化情况。
wiile语句流程图
for语句和while语言使用上大同小异
// 初始化语句
int i = 0;
//条件判断
while(i<=10000)
//循环体
printf("对不起,我错了,原谅我吧!);
// 布进语句
i ++;

3丶do…while语句循环
格式:
初始化表达式①
do{ 循环体③
步进表达式④
}while(布尔表达式②);
执行流程执行顺序:①③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句
④循环后,循环变量的变化情况

do...while语句循环程序流程图
//初始化语句
int i =0;
do{
//循环体
printf("对不起,我错了,原谅我吧!);
//布进语句
i++;
}while(i<=10); //条件判断

循环语句的区别 for 和 while 的区别:
如果条件判断从来没有满足过,那么for循环和while循环会执行0次,但是do-while循环会至少执行一次。
控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继 续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消 失,能够提高内存的使用效率。
在已知循环次数的时候使用推荐使用for,循环次数未知的时推荐使用while。

break关键字
用法:1.可以在switch语句当中,一旦执行,整个switch语句立刻结束
2.还可以用在循环语句当中,一旦执行整个循环语句立刻结束,打断循环
例如,小明的家在10层,按电梯按键10,打算回他的家,在四层的时候看见了邻居小芳,然后跟着小芳去他家了,那么3层以后的小明便不再搭乘了
for(int i =0;i < 10;i++)
//如果需要从第四次开始,后续全都不要,就要打断循环
if (i = = 3); //如果当前是第3次
break; //那么就打断整个循环
printf("%d层到了“,i );
continue关键字
一旦执行,立刻跳过当前循环这次sheng的剩余内容,马上开始下一次循环
例如,小明成了上市公司的老总,在建设50层新办公大楼的时候,小明比较迷信,要求在电梯的楼号不允许有4层,使用continue跳过4层,执行其他层
for( int i = 0;i < 50;i ++)
if (i == 4)//如果当前是第4层
continue: //那么跳过当前次循环,看开始下一次循环
printf("%d层到了”,i );

猜你喜欢

转载自blog.csdn.net/worrybout/article/details/105408146