一、分支
(一)if 分支
1、if 单分支
2、if 多分支
if 分支的注意点
Question1:下列代码打印结果是什么??
结果是 hehe ?还是 haha ?
int main()
{
int a = 1;
int b = 2;
if (a == 0)
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
其实结果都不对,如下:
这是因为 else 会对应于离当前 else 语句最近的一个 if 语句来匹配,因此对应关系应该是这样的:
Question2:下列代码打印结果是什么??
int main()
{
int a = 1;
int b = 2;
if (a == 0)
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
Question3:下列代码打印结果又是什么??
int main()
{
int a = 1;
int b = 2;
if (a == 0) {
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
}
return 0;
}
其实对应上述三段代码,它们所表达的意思都是相同的,只是形式相对来说更加直观,便于理解。
又或者这样,结果又会怎样??
int main()
{
int a = 1;
int b = 2;
if (a == 0) {
if (b == 2)
printf("hehe\n");
}
else
printf("haha\n");
return 0;
}
而这段代码,注意它的大括号的位置,因此对应的结果应该为:
由此可见,日常在编写代码时应注重代码格式的调整,从而便于自己测试检查,也方便他人理解自己的代码~~~~~~~~
Question4:对比下列代码:
int main()
{
int mac = 1;
if (mac == 0)
printf("haha\n");
printf("hehehehe\n");
return 0;
}
int main()
{
int mac = 1;
if (mac == 0)
printf("haha\n");
else
printf("hehehehe\n");
return 0;
}
其实两段代码是完全相同的含义:
练习:打印 1-100 之间的奇数(大家可以自己先写写)
//下列为我个人比较喜欢的方式,仅供参考哦~
int main()
{
int i = 1;
while (i < 100) {
if (i % 2 == 1)
printf("%d ", i); //是奇数
++i;
}
return 0;
}
(二)switch 多分支
switch 语句使用方式:
switch(整型表达){ //switch 分支必须是整形表达式
语句;
}
例如,判断星期:
int main()
{
int day = 0;
scanf("%d", &day); //输入
switch (day) {
case 1: //case 分支表达式必须是整型常量
printf("星期一\n");
break; //结束当前分支
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
default:
break;
}
return 0;
}
如果简单的只需判断工作日和休息日,则可以使用如下方式:
int main()
{
int day = 0;
scanf("%d", &day);
switch (day) {
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
default:
break;
}
return 0;
}
注意:
1、在每一个 case 分支结束之后应该都加上 break,才表示一个完整的分支语句结束。
2、default 语句表示除了所列表的 case 分支情况以外的默认选项,并在该 default 语句最后加上 break 。
二、循环
三种 :while\for\do…while
(一) while
while 循环中 continue 为结束当前循环:
while 循环中的 break ,表示永久终止循环:
(二)for
for 循环中有三个条件:for(;;)
其中第一个条件为初始值,第二个为条件判断,第三个为迭代变化,一般情况下第一个条件可以省略
省略第一个条件时:
for 循环中的 continue
for 循环中的 break
永久终止后续循环
(三) do…while
do…while 分支中首先执行最后判断
do…while 中的 continue
结束本次循环
do…while 中的 break
永久结束后续所有循环
Tips:
博客内容为原创,有任何问题都可以评论哦~~~