我是靠谱客的博主 如意睫毛,最近开发中收集的这篇文章主要介绍分支和循环语句(1)if语句 switch语句 while循环 do...while循环 for循环 break作用 continue作用,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
C语言是结构化的程序设计语言
1.顺序结构
2.选择结构 if、switch
3.循环结构 while、for、do while
一、什么是语句
控制语句
用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,
C
语言有九种控制语句。
可分成以下三类:
1. 条件判断语句也叫分支语句:
if
语句、
switch
语句;
2.
循环执行语句:
do while
语句、
while
语句、
for
语句;
3. 转向语句:
break
语句、
goto
语句、
continue
语句、
return
语句。
二、分支语句(选择结构)
1.if语句
语法结构:
单分支
if
(
表达式
)
语句
;
int main()
{
int age=0;
scanf("%d",&age);
if(age>=18)
printf("成年n");
}
双分支
if
(
表达式
)
语句
1
;
else
语句
2
;
int main()
{
int age=0;
scanf("%d",&age);
if(age>=18)
printf("成年n");
else
printf("未成年n");
}
多分支
if(表达式1)
语句1;
else if(表达式2)
语句
2
;
else
语句
3
;
int main()
{
int age=0;
scanf("%d",&age);
if(age<18)
{
printf("未成年n");
printf("好好学习n");
}
else if(age>=18&&age<30)
printf("青少年n");
else if(age>=30&&age<50)
printf("中年n");
else if(age>=50&&age<80)
printf("中老年n");
else
printf("老年n");
}
如果表达式的结果为真,则语句执行。
在C语言中如何表示真假?
0表示假,非0表示真。
1)悬空else
int main()
{
int a = 0;
int b = 2;
if(a == 1)
if(b == 2)
printf("hehen");
else
printf("hahan");
}
什么都不打印,下面的if、else匹配
改正
//适当的使用{}可以使代码的逻辑更加清楚。
//代码风格很重要
int main()
{
int a = 0;
int b = 2;
if(a == 1)
{
if(b == 2)
{
printf("hehen");
}
}
else
{
printf("hahan");
}
}
打印haha
2)if书写形式的对比
int test2()
{
int a=0;
if(a)return 1;
elae return 0;
}
int test1()
{
int a=0;
if(a)
return 1;
return 0;
}
int main()
{
int ret1=test1();
int ret2=test2();
printf("ret1=%dn",ret1);//0
printf("ret2=%dn",ret2);//0
}
int main()
{
int num = 1;
if(num=5) //赋值
{
printf("hehen");//hehe
}
}
3)练习
eg1. 判断一个数是否为奇数
int main()
{
int n=0;
scanf("%d",&n);
if(n%2==1)
{
printf("奇数n");
}
}
eg2. 输出1-100之间的奇数
int main()
{
int i=1;
while(i<=100)
{
if(i%2==1)//对i进行判断
printf("%d ",i);
i++;
}
}
2.switch语句
switch语句也是一种分支语句,常常用于多分支的情况。
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日
int main()
{
int day = 0;
scanf("%d",&day);
switch(day)
{
case 1:
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;
}
}
写成 if...else if ...else if 的形式太复杂,那我们就得有不一样的语法形式,这就是switch 语句。
switch ( 整型表达式 ){语句项;}//语句项 是一些 case 语句:// 如下:case 整型常量表达式 :语句 ;
1)在switch语句中的 break
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d",&day);
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekdayn");
break;
case 6:
case 7:
printf("weekendn");
break;
}
}
break语句的实际效果是把语句列表划分为不同的分支部分。
编程好习惯
在最后一个
case
语句的后面加上一条
break
语句。(可以避免出现在以前的最后一个 case
语句后面忘了添加
break
语句)。
2)default子句
default
: 写在任何一个 case
标签可以出现的位置。 当 switch
表达式的值并不匹配所有
case
标签的值时,这个
default
子句后面的语句就会执行。 所以,每个switch
语句中只能出现一条
default
子句。 但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case
标签一样执行
default
子句。
编程好习惯
在每个
switch
语句中都放一条
default
子句是个好习惯,甚至可以在后边再加一个
break
。
3)练习
#include <stdio.h>
int main()
{
int n = 1;
int m = 2;
switch (n)//1
{
case 1:
m++;//m=3
case 2:
n++;//n=2
case 3:
switch (n)//2
{//switch允许嵌套使用
case 1:
n++;
case 2:
m++;//m=4
n++;//n=3
break;//跳出自己的switch
}
case 4:
m++;//m=5
break;
default:
break;
}
printf("m = %d, n = %dn", m, n);//m=5,n=3
}
三、循环语句
1.while循环
int main()
{
while(1)
printf("hehen");
}
//while 语法结构while ( 表达式 )循环语句 ;
在屏幕上打印1-10的数字。
int main()
{
int i = 1;
while(i<=10)
{
printf("%d ", i);
i = i+1;
}
}
1) while
语句中的
break
和
continue
//break 代码实例
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
break;
printf("%d ", i);//1 2 3 4
i = i+1;
}
}
总结:break在while循环中的作用:
其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。 while中的break是用于永久终止循环的。
//continue 代码实例1
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
continue;
printf("%d ", i);//1 2 3 4死循环
i = i+1;
}
}
总结
: continue在while循环中的作用就是:
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行, 而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。
//代码1
#include <stdio.h>
int main()
{
int ch = 0;
while ((ch = getchar()) != EOF)
{
putchar(ch);
}
}
这里的代码适当的修改是可以用来清理缓冲区的.
int main()
{
char ch = '