C语言是结构化的程序设计语言,这里的结构指的是顺序结构、选择结构、循环结构。
我们可以使用 if 、 switch 实现分支结构,使用 for 、 while 、 do while 实现循环结构。
目录
1.2.5 switch语句中的case和default的顺序问题
一、分支结构
(一)、if 分支结构
1.1.1 if语句
if语句的语法形式如下:
if ( 表达式 )
语句
表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行。
在C语言中,0为假,非0表示真,也就是表达式的结果如果是0,则语句不执行,表达式的结果如果是不是0,则语句执行。
#include<stdio.h>
int main()
{
int age = 0; //age表示你的年龄
scanf("%d", &age);//请输入你的年龄
if (age >= 18)
printf("你已经是一个成年人了");
return 0;
}
上面的代码中,如果你输入的值大于等于18,就会输出:你已经是一个成年人了
比如:你输入了21
但是,如果你输入的值小于18,则
printf("你已经是一个成年人了");
就不会执行
比如:你输入了15
这个时候,我们需要用到else,下面1.2会提到,暂时不提
如果你还想在输出“你已经是一个成年人了”的同时,输出“你已经可以开始赚钱了”,你可能会这样写:
#include<stdio.h>
int main()
{
int age = 0; //age表示你的年龄
scanf("%d", &age);//请输入你的年龄
if (age >= 18)
printf("你已经是一个成年人了\n");
printf("你已经可以开始赚钱了\n");
return 0;
}
这个时候,你输入21,好像没问题:
但是你如果输入15,就会发现:
为什么呢?因为if 语句只能控制⼀条语句,所以
if (age >= 18)
printf("你已经是一个成年人了\n");
当age等于15时,它就不会执行,而是去执行下面这个代码去了
printf("你已经是一个成年人了");
如何解决这个问题?那就要使⽤ {} 将代码括起来,比如:
#include<stdio.h>
int main()
{
int age = 0; //age表示你的年龄
scanf("%d", &age);//请输入你的年龄
if (age >= 18)
{
printf("你已经是一个成年人了\n");
printf("你已经可以开始赚钱了\n");
}
return 0;
}
这个时候输入15,就没问题了:
1.1.2 else语句
else语句需要和if语句联合使用,叫if...else... 语句,语法形式如下:
if ( 表达式 1)
语句1
else
语句2
如果表达式 1成立,则执行语句1,否则执行语句2
比如,如果你的年龄小于18岁,就有以下代码:
#include<stdio.h>
int main()
{
int age = 0; //age表示你的年龄
scanf("%d", &age);//请输入你的年龄
if (age >= 18)
{
printf("你已经是一个成年人了\n");
printf("你已经可以开始赚钱了\n");
}
else
{
printf("你还未成年呢");
}
return 0;
}
当你输入15:
1.1.3 if和else的嵌套使用
如果你想,当18<=age<35时,表示你还很强壮;当age>=35时,表示你已经变老了;
当12<=age<18时,表示你学习压力很大;当age<12是,表示你玩的很开心。
你可以这样写:
#include<stdio.h>
int main()
{
int age = 0; //age表示你的年龄
scanf("%d", &age);//请输入你的年龄
if (age >= 18)
{
printf("你已经是一个成年人了\n");
printf("你已经可以开始赚钱了\n");
if (age < 35)
{
printf("你还很强壮\n");
}
else
{
printf("你已经开始变老了\n");
}
}
else
{
printf("你还未成年呢\n");
if (age >= 12)
{
printf("你的学习压力很大\n");
}
else
{
printf("你玩得很开心\n");
}
}
return 0;
}
当你输入8时:
当你输入14时: