今天向大家介绍一下分支语句与循环语句,这篇文章将带你详细了解各分支语句与循环语句的使用方法,希望能对你有帮助~
目录
1、控制语句
控制语句是C语言的五类语句之一,用于控制程序的执行流程,以实现程序的各种结构方式,他们由特定的语句定义符组成,C语言有九种控制语句,可分为以下三类:
1、条件判断语句 也叫分支语句:if语句、switch语句;
2、循环执行语句:do while语句、while语句、for语句;
3、转向语句:break语句、goto语句、continue语句、return语句
今天我们先学习条件判断语句。
2、条件判断语句(分支语句)
分支语句实际上是选择结构,我们根据判断条件,来选择分支方向,执行相应内容。
1、if语句
if语句的语法结构:
if(表达式)
语句;
如果表达式为真,则执行语句;如果表达式为假,则不执行语句。
#include<stdio.h>
int main()
{
int age=0;
scanf("%d",&age);
if(age>=18)
printf("成年了\n");
else
printf("未成年\n");
}
如以上代码所示,当括号中判断条件为真时,我们执行if语句内容,当判断为假时,不执行语句内容,执行else语句。
同时,if语句也可以嵌套使用:
#include<stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age >= 18)
{
if (age < 45)
printf("青年人\n");
else if (age >= 45 && age < 60)
printf("老年\n");
else if (age >= 60 && age < 75)
printf("年轻老年人\n");
else if (age >= 75 && age < 90)
printf("老年人\n");
else
printf("长寿老人\n");
}
else
printf("未成年\n");
return 0;
}
由这一串代码我们看出,在if语句里还可以嵌套if语句,它的使用可以是多分支的。
且在if语句中,else是与他最近的一个if匹配的:
接下来我们尝试使用if语句来执行实例的结构:
#include<stdio.h>
int main()
{
//超级饿 —— 1
//有点饿 —— 2
//很饱不饿 —— 3
printf("你有多饿呢:");
int x = 0;
scanf("%d", &x); //选择饿的程度
if (x == 1)
{
//如果选择1 证明我们想吃一份烤冷面
//如果我们想加香菜输入1 不想输入0
int y = 0;
printf("你想加香菜吗:");
scanf("%d", &y);
if (y)
{
printf("你得到了一份加香菜的烤冷面\n");
}
else
{
printf("你得到了一份不加香菜的烤冷面\n");
}
}
else if (x == 2)
{
printf("你得到了一个煎饼\n");
}
else //这边表示除了1 2的其他状态,也可以使用else if(x == 3)
{
printf("啥也不吃,回去睡觉\n");
}
return 0;
}
2、switch语句
switch语句也是一种分支语句,常常用于多分支的情况。
例如:
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日
如果用if语句来表达,写成if……else if…else if… 的形式太过复杂,我们可以尝试用switch语句更加简洁明了的表示。
switch语句的语法结构:
switch(整型表达式)
{
case 整型常量表达式;
语句;
}
那我们事例就可以用代码写为:
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
printf("今天星期一\n");
case 2:
printf("今天星期二\n");
case 3:
printf("今天星期三\n");
case 4:
printf("今天星期四\n");
case 5:
printf("今天星期五\n");
case 6:
printf("今天星期六\n");
case 7:
printf("今天星期日\n");
}
return 0;
}
但当我们编译起来会发现,并不能很好的输出我们想要的内容。
· switch语句中的break
我们想要的是输入几就打印星期几,但我们发现,打印完后程序并没有就此停下来,而是会继续往下运行,直至执行完所以case 语句。
因为在switch语句中,我们没办法直接实现分支,搭配break一起使用才能实现真正的分支。
break语句的实际作用是把语句划分为不同的分支部分。
更改后:
#include<stdio.h>
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;
}
return 0;
}
由此我们成功实现了我们的需求。
· default子句
但还有一个问题,如果我们输入了8 或是输入了其他与case标签的值都不匹配的数,会怎么样呢?
其实也不会怎么样,就是结构中所有的语句都会被跳过。程序也不会被终止,也不会报错,因为这种情况在c语言中并不认为是个错误。但是如果我们并不想忽略这个值时,我们可以增加一个default子句。
当switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会被执行。所以,每个switch语句中只能出现一条default子句。它可以出现在语句列表的任何位置,并且语句流会像执行一个case标签一样执行default子句。
#include<stdio.h>
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;
default:
printf("输入错误,请重新输入\n");
break;
}
以上就是 C语言基础:分支语句超详图解(if、switch语句) 的全部内容,希望对你有帮助!请多多支持吧~