目录
一、分支和循环语句具体包括哪些语句
1.条件判断语句也叫分支语句,例如if语句,switch语句
2.循环执行语句,例如while语句,for语句,do while语句
二、分支语句
分支语句中包括了if语句和switch语句
1.if语句
if(表达式)
{
语句1;
}
//如果表达式成立,则执行语句1
if(表达式)
{
语句1;
}
else
{
语句2;
}
//如果表达式成立,则执行语句1,否则执行语句2
if(表达式1)
{
语句1;
}
else if(表达式2)
{
语句2;
}
else
{
语句3;
}
//如果表达式1成立,则执行语句1
//表达式1不成立紧接着判断表达式2是否成立
//如果表达式2成立,则执行语句2
//如果两个表达式均不成立,则执行语句3
//悬空else的情况
int a=0;
int b=2;
if(a==1)
if(b==2)
printf("hehe");
else
printf("haha");
//此时运行程序,发现并没有打印haha
//这是因为,else总是和与它最近的if匹配
//即只有在a==1,b!=2的时候,我们才会打印出haha
//因此我们建议加上{}便于理解
int a=0;
int b=2;
if(a==1)
{
if(b==2)
printf("hehe");
else
printf("haha");
}
由此我们可以得知,培养一个好的代码风格是很重要的
2.switch语句
switch语句经常用于多分支的情况
int main()
{
int day=0;
scanf("%d",&day);
switch(day)
case 1:
printf("星期一");
break;
case 2:
printf("星期二");
break;
case 3:
printf("星期三");
break;
case 4:
printf("星期四");
break;
case 5:
printf("星期五");
break;
case 6:
printf("星期六");
break;
case 7:
printf("星期日");
break;
default
printf("输入错误");
}
switch(变量名)
//此时的变量可以为整型,也可以为字符型
case 常量表达式:
语句;
//表达式中的类型应与变量的类型一致,可以是整型,也可以是字符型
//输入对应的常量表达式时执行对应的语句
易错点!!!
1.如果没有在每一个case执行的语句后面加上break,程序不会跳出而会接着执行下一个case的语句直到程序结束
2.如果输入case以外的值时,程序会直接结束,如果想要提醒输入的值不在范围内,这时就该default登场了,如果我们输入的值不在case的情况之中,就会去执行default的语句,这样我们就可以知道输入的值不在范围内了
3.偷懒小技巧,虽然每一个case语句后面都需要加上break跳出程序,但是最后一个default语句因为后面没有语句了,就可以省略掉break
4.case与default没有顺序规定,但是我们习惯把default放在最后
int main()
{
int day=0;
scanf("%d",&day);
switch(day)
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日");
break;
case 6:
case 7:
printf("双休");
break;
default
printf("笨蛋,一周只有7天");
}
我们也可以使用多个case执行同一个语句
三、循环语句
循环语句包括while语句,for语句和do while语句
1.while语句
int i=1;
while(i<=10)
{
printf("%d",i);
i++;
}
//while语句为先判断条件再决定是否执行
//如果满足while语句中的条件,则执行下方表达式,如果不满足则循环结束
//以上代码的结果为打印1到10的每一个数
在该循环语句中,执行条件的判断次数永远比执行次数多一次
1.while中的break
int i=1;
while(i<=10)
{
if(i==5)
break;
printf("%d",i);
i++;
}
//此段代码的结果为打印1 2 3 4
该代码在i==5时,在if语句判断后break跳出循环,所以打印的为1 2 3 4
总结:
在循环语句中,break为跳出循环,后面的循环也会无法执行,所以while中的break是用于永久终止循环的
2.while中的continue
int i=1;
while(i<=10)
{
i++;
if(i==5)
continue;
printf("%d",i);
}
//此段代码的结果为打印2 3 4 (中间缺少一个5) 6 7 8 9 10 11
该代码在i==5时,在if语句判断后continue跳出本次循环开始下一次循环,所以打印的是2 3 4 6 7 8 9 10 11
总结:
在循环语句中,continue为跳出本次循环,开始下一次循环,所以while中的continue是用于结束本次循环而开始下一次循环的
2.for语句
for(表达式1;表达式2;表达式3)
{
循环语句;
}
表达式1为初始化部分,用于初始化循环变量
表达式2为条件判断部分,用于判断循环何时终止
表达式3为调整部分,用于调整循环的条件
1.for中的break
for(int i=0;i<10;i++)
{
if(i==5)
break;
printf("%d",i);
}
此段代码运行的结果为打印0 1 2 3 4
总结:
break在for循环中的作用是跳出本次循环并永久结束循环
2.for中的continue
for(int i=0;i<10;i++)
{
if(i==5)
continue;
printf("%d",i);
}
此段代码运行的结果为打印0 1 2 3 4 6 7 8 9
总结:
continue在for循环中的作用是跳出本次循环并进入下一次循环
3.for循环中一些特殊的用法
for(int i=1;;i++)
{
if(i==5)
break;
printf("%d",i);
}
for(语句1;语句2;语句3)
语句2为空时,即for循环判断恒为真
如果需要结束for循环应该在循环语句中加入跳出循环的条件
例如上述代码中i==5时,if语句执行break永久跳出循环
3.do while语句
循环至少执行一次,使用场景有限,很少会用到
do
循环语句;
while(表达式);
do while循环的使用是先运行一次再判断while中表达式是否成立从而决定是否再次运行
int i=1;
do
{
printf("%d",i);
i++
}
while(i<=5)
此段代码的运行结果为1 2 3 4 5
1.do while中的break
break用于立即结束本次循环,并不再进行之后的循环,用于在满足某条件时跳出循环
2.do while中的continue
continue用于立即结束本次循环,并开始下一次的循环,用于在某特殊条件下跳过循环
以上为个人对于分支和循环的理解,如有遗漏,欢迎在评论区进行补充