前言
昨天断更有点小尴尬,今天补上连更两篇
首先今天带来分支和循环语句的教学分享
一、分支语句
- 分支语句也叫作条件判断语句,包括:if语句,switch语句
1.if语句
a. if语句的语法结构为
if(判断条件)
{
语句1;
}
else
{
语句2;
}
- 如果判断条件为真,则返回1,执行大括号内的语句1;
- 如果判断条件为假,则返回0,执行大括号内的语句2。
此外如果有多个情况,可以使用if ……else if…… else的结构
eg
#include <stdio.h>
int main()
{
int year = 0;
scanf("%d", &year);
if (year < 18)
{
printf("未成年\n");
}
else if (year >= 18 && year < 60)
{
printf("壮年\n");
}
else
{
printf("老年\n");
}
return 0;
}
b.if语句的就进原则
if语句总是和最近的else连用,构成一个if语句
以一个非常易错的代码举个例子
#include <stdio.h>
int main()
{
int i = 10;
if (i == 5)
if (i == 10)
printf("haha\n");
else
printf("hehe\n");
return 0;
}
猜猜答案是什么吧?
揭晓正确答案
结果是什么都不输出
你猜对了吗?
将代码放在vs编译器底下看看
vs自动进行了排版,这下看明白了吧
控制台显示如上
什么都没输出
到这里,你该明白if语句的就近原则了吧
。
另外,这里也提醒我们在平时写代码时要注意规范。
这里,推荐一本书,教会大家如何写一手好代码
林锐:《高质量的C/C++编程》
注意跳转过去的那个博主不是林锐博士本人
2.switch语句
switch语句常用于多分支情况
a.switch语句的语法结构
switch(整型表达式)
{
case:value 1;
break;
case:value 2;
break;
……
default:
break;
}
**不同的case相当于不同的入口,从switch后面的括号内读取值,搭配相应的入口进入
。
注意:switch后面的括号中需要一定为整型表达式
且要注意case后面的冒号后面必须为整型常量表达式(int,char,long等)
b.switch语句中的break
写个代码观察有无break的区别
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
switch(n%3)
{
case 0:
printf("整除,余数为0\n");
case 1:
printf("余数是1\n");
case 2:
printf("余数是2\n");
}
return 0;
}
运行看看效果
再看看有break的代码
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
switch(n%3)
{
case 0:
printf("整除,余数为0\n");
break;
case 1:
printf("余数是1\n");
break;
case 2:
printf("余数是2\n");
break;
}
return 0;
}
运行看看效果
由此可见使用 break 能够跳出 switch 语句,如果某一个 case 语句的后边没有 break 语句,代码会继续往下执行,有可能执行其他 case语句中的代码,直到遇到 break 语句或者 switch 语句结束。
c.switch语句中的default
default会作为与以上的分支均不符合时的入口。
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
switch (n % 4)
{
case 0:
printf("整除,余数为0\n");
break;
case 1:
printf("余数是1\n");
break;
case 2:
printf("余数是2\n");
break;
default:
printf("余数是3\n");
break;
}
return 0;
}
输入3可以看到结果
会从与前面均不契合的default进入。
二、循环语句
1.循环语句的分类
循环语句分为三类,分别为while循环,for循环,以及do while循环
这三种循环在大部分情况下可以相互转换
其中,for循环使用最多
2.while循环
a.while循环的语法结构
while (表达式)
{
循环语句;
}
b.break语句
在循环中,当遇到break语句时,就会结束循环
#include <stdio.h>
int main()
{
int i = 0;
while (i < 10)
{
if (i == 5)
break;
printf("%d ", i);
i++;
}
return 0;
}
运行结果
打印到5的时候直接跳出循环
c.continue循环
当遇到continue的时候,循环就会跳过continue语句后面的代码,直接来到条件判断处
#include <stdio.h>
int main()
{
int i = 0;
while (i < 10)
{
if (i == 5)
continue;
printf("%d ", i);
i++;
}
return 0;
}
闪烁的光标,进入了死循环
3.for循环
a.for循环语句结构
for (表达式1;表达式2;表达式3)
{
循环语句;
}
1for (表达式1;表达式2;表达式3)
2 {
3 循环语句;
4 }
__表达式一:__表达式一为初始化部分,用于初始化循环变量的。
__表达式二:__表达式二为条件判断部分,用于判断循环时终止。
__表达式三:__表达式三为调整部分,用于循环条件的调整。
c.break和continue
在for循环中,break和continue的作用相同,但由于结构的不同,最后的效果也就存在差异。
如下图
最后的效果也因此存在差异
4.do while循环
a.do while循环的结构
do
{
循环语句;
}
while(表达式);
注意while的末尾有一个分号不能忘记掉
do while循环会先进入循环体,经过一次循环之后,才进入判断
b.break和continue
break和continue和上述作用几乎类似。
ok 第一更完成,第二更马上到。
!!!!!!!!!!!加油,编程人!!!!!!!!!
!期待关注!