分支和循环 在c语言中可以说是离开他们程序都是不行的。
那么接下来我就给初学者带来一篇初阶的分支和循环.....
分支
if,switch
循环
while,for,do while
1.什么是分支语句??
分支语句就是选择语句。
如果你给我点个关注,你就是我的粉丝。
如果你不给我点关注,你就不是我的粉丝。
这就是选择
1.1 if语句
那if语句的语法结构是怎么样的呢??
if(表达式)
语句1;
else
语句2;
多分支
if(表达式)
语句1;
slse if(表达式2)
语句2;
else
语句3;
括号里的表达式为真则执行括号中的语句。
在c语言中
0表示假,非0表示真。
1.2 switch语句
switch也是一种分支语句,常用于多分支情况
比如:
输入1:输出星期一
输入2,输出星期二
输入3:输出星期三
如果我写成if,else if,else if的形式太复杂,那我们就得有更好的方法
这就是switch
switch(整形表达式)
{
语句块;
}
语句块是什么呢?
case 整形常量表达式;
语句;
1.2.1 在switch语句中的 break
在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支
比如:
#include<stdio.h>
int main()
{
int day=0;
switch(day)
{
case 1:
printf("星期一");
break;
case 2:
printf("星期二");
break;
case 3:
printf("星期三");
break;
}
return 0;
}
有时候我们需求变了,输入1~3输出星期1~3
输入6和7,输出放假
所以我们的代码就变成了:
#include<stdio.h>
int main()
{
int day=0;
switch(day)
{
case 1:
printf("星期一");
break;
case 2:
printf("星期二");
break;
case 3:
printf("星期三");
break;
case 6:
case 7:
printf("周末");
break;
}
return 0;
}
break语句的效果就是要把语句列表划分为不同的分支部分。
1.2.2 default子句
如果表达的值与所有的case标签的值不配怎么办??其实也没什么,结构就是所以的语句被跳过而已,程序并不会被终止,也不会报错,因为这种情况在c中并不认为是个错误。
但是,如果你并不想忽略不匹配的值,该怎么办呢???!!!default的出现就很好的解决了你的问题。
#include<stdio.h>
int main()
{
int day=0;
switch(day)
{
case 1:
printf("星期一");
break;
case 2:
printf("星期二");
break;
case 3:
printf("星期三");
break;
case 6:
case 7:
printf("周末");
break;
default:
break;
}
return 0;
}
2.循环语句
while,for,do while
2.1.1 while语句中的break和continue
break介绍
在循环中遇到break,就停止后后期的所以的循环,直接循环终止。
所以:break在while中是用于永久终止循环的。
continue介绍
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳到while语句的判断部分,进行下一次的循环入口判断。
2.2 for循环
2.2.1 语法
for(表达式1;表达式2;表达式3)
{
循环语句;
}
表达式1:为初始化部分,用于初始化循环变量。
表达式2:条件判断部分,用于判断循环时候终止。
表达式3:为调整部分,用于循环变量的调整
for和while循环的三个部分,由于风格问题,使得while的三个部分偏离较大。
所以for的风格更胜一筹,for的使用频率也更高。
2.2.2 break和continue在for循环中
和while中是一样的规则
2.3 do...while()循环
do
{
循环语句;
}while(表达式);
2.3.2 do语句的特点
循环至少执行一次,使用的场景有限,所以不是经常使用
2.3.3 do...while循环中的break和continue
和上述循环使用方法一样
3. goto语句
c语言提供了可以随意滥用的goto语句和标记跳转的标号。
从理论上讲,goto语句是没有必要的,实践中goto语句也可以很容易的写出代码。
但是某些场合下,goto语句还是挺有用的,最常见的用法就是终止程序在某些深度嵌套 的结构的处理过程。例如:一次跳出两次循环或者多次循环
break只能跳出一次循环,是达不到效果的。
感谢大家的阅读,希望对大家有所帮助