(1).首先需要知道在C语言中什么是语句?
用分号隔开的叫一条语句
“ ” ; //注意,这个代表的是一个空语句。
(2).if分支语句(选择结构)
1.语法结构:
单分支:如下
if(表达式)//表达式为真就执行下面的语句,表达式为假不执行
语句;
(tip:在C语言中非0就表示真,0表示假)
双分支:如下
if(表达式) //表达式为真就执行语句1,否则就执行语句2
语句1;
else
语句2;
多分支:如下
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
//表达式1如果为真就执行语句1,如果为假,就判断表达式2,为真执行语句2,否则执行语句3
例如下代码:判断一个人是否成年(规定大于等于18成年)
#include <stdio.h>
int main()
{
int age;
scanf("%d",&age); //随意输入一个人的年龄
if(age>=18)
printf("这个人已经成年");
else
printf("这个人还未成年");
return 0;
}
注意:在使用if语句的时候,可以添加一个大括号将所需要执行的语句括起来,如果没有大括号,那就会默认只执行if后的一条语句。具体如下
#include <stdio.h>
int main()
{
int age;
if (age >= 18)
Printf("此人已经成年")//表达式如果成立,此时就默认执行该语句
return 0;
}
#include <stdio.h>
int main()
{
int age;
scanf("%d",&age); //随意输入一个人的年龄
if(age>=18)
{ //由于有大括号,所以如果表达式为真的时候,就会执行以下两个语句
printf("这个人已经成年");
printf("可以谈恋爱")
}
else
printf("这个人还未成年");
return 0;
}
eg:用一个代码来判断一个人是少年,青年还是成年(规定小于16为少年,16到26是青年,大于26是成年)
#include <stdio.h>
int main()
{
int age;
scanf("%d",&age); //随意输入一个人的年龄
if(age<18)
printf("这个人是个少年");
else if(age>=16&&age<=26)//c语言中限定数值范围的写法
printf("这个人是个青年");
else
printf("这个人已成年");
return 0;
}
(tip:上述代码中年纪小于26,大于16的写法与数学中的表达式有所差异,需注意)
悬空else
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("shuiba\n");
else
printf("don't shui\n");
return 0;
}
此处运行代码应该是什么都打印不出来,这是因为else与离的近的if匹配。上述代码就是误导else与第一个if语句匹配,这也是书写代码的问题,小编在这里也劝导大家在书写自己的代码时要做到简洁,方便阅读。如果上述代码写成如下形式,就会很容易理解。
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("shuiba\n");
else
printf("don't shui\n");
return 0;
}
易错点
在if语句中如果在括号中写为如下
if (a = 2)
语句;
此时程序会运行,但是是错误的,这是因为if后的括号里要表达出一个判断的过程,这里的a = 2,是赋值,这是与数学中不一样的地方,如果需要判断是否相等,需要用“==”