C语言if else语句的用法(非常完整和详细)

C语言if else语句的用法(非常完整和详细)

if else 是C语言中最常用的一种选择结构(分支结构),它会根据不同的条件执行不同的代码块。

在C语言中,我们可以设置一个条件,让程序根据不同的条件执行不同的代码块,这就是分支结构。分支结构就像岔路口,你可以往左走,也可以往右走;具体要怎么走,得根据给出的条件来判断。

if else 语句

C语言 if else 语句的基本语法如下:

if(条件){

//代码块1

//如果条件为真,执行这里的代码

}else{

//代码块2

//如果条件为假,执行这里的代码

}

if 语句中条件可以是任何有效的C语言表达式,常见的包括比较表达式、逻辑表达式,甚至是简单的变量或者函数调用。

条件中的表达式有一个计算结果:

如果表达式的结果为非零值(真),则条件成立,执行 if 后面的代码块1;

如果表达式的结果为零值(假),则条件不成立,执行 else 后面的代码块2。

所谓代码块,就是由{ }包围的一条或者多条语句的集合。

if else 语句的执行流程可以用下图表示:

让我们通过一个简单的例子来演示 if else 语句的用法:

#include

int main() {

int age;

printf("请输入你的年龄:");

scanf("%d", &age);

if (age >= 18) {

printf("你已经成年了。\n");

} else {

printf("你还未成年。\n");

}

return 0;

}

这段代码中,age>=18是需要判断的条件,>=表示“大于等于”,等价于数学中的≥。

如果条件成立,也即 age 大于或者等于 18,那么执行 if 后面的代码块,打印"你已经成年了";如果条件不成立,也即 age 小于 18,那么执行 else 后面的代码块,打印"你还未成年"。

可能的运行结果:

请输入你的年龄:14

你还未成年。

或者:

请输入你的年龄:24

你已经成年了。

省略大括号

if 和 else 后面的代码块中,如果只有一条语句,那么可以省略{ },例如:

if (age >= 18)

printf("你已经成年了。\n");

else

printf("你还未成年。\n");

这种写法虽然从语法上讲是正确的,但是从可读性和规范性上讲,还是强烈建议加上{ },这也是很多公司的编码规范所要求的。

只使用 if 语句

有的时候,我们需要在满足某种条件时进行一些操作,而不满足条件时就不进行任何操作,这个时候我们可以只使用 if 语句,而不使用 else 语句。也就是说,if else 不必同时出现。

单独使用 if 语句的语法如下:

if (条件) {

//代码块

// 如果条件为真,执行这里的代码

}

条件是一个有效的C语言表达式,如果表达式的结果为非零值(真),则大括号内的代码块将被执行;如果表达式的结果为零值(假),程序将跳过这个代码块,继续执行 if 语句之后的代码。

if 语句的执行流程可以用下图表示:

让我们通过一个简单的例子来演示 if 语句的用法:

#include

int main() {

int age;

printf("请输入你的年龄:");

scanf("%d", &age);

if (age >= 18) {

printf("你已经成年了\n");

}

return 0;

}

在这个例子中,我们检查变量 age 是否大于或等于 18:如果条件成立,程序将输出"你已经成年了"的消息;如果条件不成立,程序什么也不输出。

可能的输出结果:

请输入你的年龄:24

你已经成年了

或者:

请输入你的年龄:14

多重 if else 语句

对于更复杂的条件判断,我们可以使用多重 if else 语句来进行处理。多重 if else 语句的基本语法如下:

if(条件1){

// 如果条件1成立,执行这里的代码

}else if(条件2){

// 如果条件2成立,执行这里的代码

}else if(条件3){

// 如果条件3成立,执行这里的代码

}else{

// 如果以上所有条件都为假,执行这里的代码

}

在这个结构中,程序会从上到下依次检查每个条件,一旦遇到一个成立的条件,就会执行对应的代码块,然后跳出整个 if else 结构。如果所有条件都不成立,那么最后的 else 块(如果有的话)将被执行。

让我们通过一个具体的例子来演示多重 if else 语句的用法:

#include

int main() {

int score;

printf("请输入学生的成绩(0-100):");

scanf("%d", &score);

if (score >= 90 && score <= 100) {

printf("优秀\n");

} else if (score >= 80 && score < 90) {

printf("良好\n");

} else if (score >= 70 && score < 80) {

printf("中等\n");

} else if (score >= 60 && score < 70) {

printf("及格\n");

} else if (score >= 0 && score < 60) {

printf("不及格\n");

} else {

printf("输入的成绩无效\n");

}

return 0;

}

在这个例子中,我们使用多重 if else 语句来输出学生成绩的评级。程序会从上到下检查每个条件,直到找到一个匹配的条件。例如,如果输入的成绩是 85,程序会执行printf("良好\n");,然后结束整个 if else 结构。

运行这段代码,可能会得到如下输出:

请输入学生的成绩(0-100):85

良好

使用多重 if else 语句时,有几点需要注意:

条件的顺序很重要。由于C语言会按顺序检查条件,一旦找到一个成立的条件就会执行对应的代码块,并跳出整个 if else 结构,所以更具体或更严格的条件应该放在前面。

else if 的数量没有限制,你可以根据需要添加任意多个 else if 分支。

最后的 else 语句是可选的。如果所有条件都不满足,并且没有 else 语句,那么整个 if else 结构将不执行任何操作。

嵌套 if else 语句

C语言允许我们在一个条件语句内部再放置另一个条件语句,形成嵌套 if else。这种结构使得我们能够处理更复杂的逻辑判断,实现多层次的决策过程。嵌套 if else 语句的基本思想是:在外层 if 或 else 块的内部再放置一个完整的 if else 语句。

嵌套 if else 语句的一般语法如下:

if (条件1) {

//当条件1成立时执行这里的代码

if (条件2) {

//当条件2成立时执行这里的代码

} else {

//当条件2不成立时执行这里的代码

}

} else {

//当条件1不成立时执行这里的代码

if (条件3) {

//当条件3成立时执行这里的代码

} else {

//当条件3不成立时执行这里的代码

}

}

这种结构允许我们创建复杂的决策逻辑,根据多个条件的组合来执行不同的代码块。每一层的 if else 语句都可以根据特定的条件来细分程序的执行路径。

让我们通过一个具体的例子来理解嵌套 if else 语句的用法。编写一个程序,根据学生的成绩和出勤率来决定他们是否能够获得奖学金:

#include

int main() {

float grade, attendance;

printf("请输入学生的成绩(0-100):");

scanf("%f", &grade);

printf("请输入学生的出勤率(0-100):");

scanf("%f", &attendance);

if (grade >= 85) {

if (attendance >= 90) {

printf("恭喜!你获得了一等奖学金!\n");

} else {

printf("很遗憾,虽然你的成绩达标,但出勤率不足。你获得了二等奖学金。\n");

}

} else {

if (attendance >= 95) {

printf("虽然你的成绩未达到一等奖学金标准,但由于出色的出勤率,你获得了三等奖学金。\n");

} else {

printf("很抱歉,你没有获得奖学金的资格。继续努力!\n");

}

}

return 0;

}

在这个例子中,我们使用嵌套的 if else 语句来处理不同的情况:

外层 if 语句检查学生的成绩是否达到 85 分或以上。

如果成绩达标,我们进入内层 if 语句,检查出勤率是否达到 90% 或以上。

如果成绩未达标,我们进入 else 块,其中包含另一个 if 语句,检查出勤率是否达到 95% 或以上。

这段代码使得我们根据成绩和出勤率的不同组合,来决定学生获得的奖学金等级。让我们看几个可能的输出结果:

请输入学生的成绩(0-100):88

请输入学生的出勤率(0-100):92

恭喜!你获得了一等奖学金!

请输入学生的成绩(0-100):90

请输入学生的出勤率(0-100):85

很遗憾,虽然你的成绩达标,但出勤率不足。你获得了二等奖学金。

请输入学生的成绩(0-100):80

请输入学生的出勤率(0-100):96

虽然你的成绩未达到一等奖学金标准,但由于出色的出勤率,你获得了三等奖学金。

请输入学生的成绩(0-100):75

请输入学生的出勤率(0-100):88

很抱歉,你没有获得奖学金的资格。继续努力!

虽然嵌套 if else 允许我们处理复杂的条件组合,但需要注意以下几点:

过度嵌套可能导致代码难以阅读和维护,一般建议嵌套不要超过三层。

对于非常复杂的条件判断,可以考虑使用 switch 语句或者将逻辑拆分为单独的函数。

正确的缩进对于提高嵌套 if else 语句的可读性至关重要。

总结

if else 语句是C语言中最常用的选择结构(分支结果),它可以根据不同的条件执行不同的代码块,是初学者必须掌握的。

相关推荐

红帽的虚拟化解决方案
北海365最新房屋出租

红帽的虚拟化解决方案

📅 06-29 ❤️ 300
王者荣耀蔡文姬新皮肤入手价格是多少
365游戏大厅网址

王者荣耀蔡文姬新皮肤入手价格是多少

📅 06-28 ❤️ 572
98世界杯巴西丢冠最大谜题,赛后法国为何免除巴西3亿美金债务?