前言:在上一篇文章里,我们对C语言大概念有了一个初步的了解。在接下来的《C语言初阶》系列的文章里我们将更近一步地走进C语言,看看我们到底能够搞出什么花样。就像学习驾驶机动车,我们已经知道了车是什么,它大概有哪些部件,以及一些必要的交通规则,接下来就让我们一起上车吧!
1.什么是语句?
在C语言中用一个分号 “ ;”隔开的就是一条语句,比如:
printf("hehe");
1 + 2;
2.分支语句(选择结构)
人生中处处充满了选择,高中分科时我们在选择,大学填报志愿时我们在选择,大三时该找工作还是考研我们在选择,拿到了offer该去哪个公司上班,我们还是在选择。现在的你还在选择吗?
2.1 if 语句
什么是if语句?它的语法结构是怎样的呢?
语法结构一:
if (表达式) 语句;//满足表达式条件即执行语句
语法结构二:
if (表达式) 语句1;//满足表达式即执行语句1 else 语句2;//不满足表达式执行语句2
语法结构三:
//多分支 if (表达式1) 语句1; else if(表达式2) 语句2; else 语句3;
下面我们通过几个实例,来看看if语句到底该怎么使用:
//代码1 —— 单分支
#include<stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("未成年\n");
}
return 0;
}
//代码2 —— 双分支
#include<stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("未成年\n");
}
else
{
printf("成年\n");
}
return 0;
}
//代码3 —— 多分支
#include<stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
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");
}
return 0;
}
解释一下:如果表达式的结果为真,则语句执行。那在C语言中真假该如何表示呢?我们用0表示假,非0表示真。
根据语法,在表达式语句判断完之后我们只能执行一条语句,如果我们想要执行多条语句该怎么办呢?这里我们应该使用代码块,一对 { } 就是一个代码块,代码块里可以放多条语句。
#include<stdio.h>
int main()
{
if (表达式1)
{
语句列表1;
}
else
{
语句列表2;
}
return 0;
}
2.1.1 悬空else
当你写了这个代码:
#include<stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1)
if(b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
改正:
//适当的使用{ }可以使代码逻辑更加清楚
//代码风格很重要
#include<stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1)
{
if(b == 2)
{
printf("hehe\n");
}
}
else
{
printf("haha\n");
}
return 0;
}
//else的匹配;else是和它离得最近的if匹配的
2.1.2 if 书写形式的对比
//代码1
if (condition) {
return x;
}
return y;
//代码2
if (condition)
{
return x;
}
else
{
return y;
}
//代码3
int num = 1;
if (num == 5)
{
printf("hehe\n"