开发者学堂课程【你的第一门 C 语言课:if 语句】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/444/detail/5461
if 语句
内容介绍:
一、 if 语句形式(1)
二、 if 语句形式(2)
三、 if 语句形式(3)
一、 if 语句形式(1)
表达式一定会返回一个值,而关系表达式和逻辑表达式返回的都是一个叫作逻辑值的东西。所谓逻辑值就是用真和假来表示结果。如果表达式的结果为真,那么他就返回表达式的结果,如果为假,那它就返回0。
分支结构的概念:
分支结构的作用就是将 c 语言的代码引入歧途。那么光有关系表达式和逻辑表达式还不足以实现所谓的分支结构,还需要学习一个新的语句,我们把这个语句称之为 if 语句。If 语句的实现有很多种形式,下面就以 if 语句展开介绍。
....//其它语句(如 return)
if (表达式)
//必须返回一个逻辑值的表达式,直接填充一个逻辑值也是可以的,非0的时候,C 语言的编译系统会认为是真,为0认为是假。
{
……//逻辑值为真所执行的语句、程序块
}
……//其它语句
其他语句可以写其他任何语句
代码演示:
#include
int main( )
{
int i; //
声明一个变量
p
rintf(“
您老贵庚啊
: ");
scanf(
”%d,&i”
);
if ( i >=18) //
括号必须有,括号里填写表达式必须返回一个逻辑值,如果为真执行语句内容,为假则忽略,执行其他语句。
{
printf(""进门左拐! \n");
}
return 0;
}
执行代码结果如下:
您老贵庚啊:
输入18
执行结果图:
您老贵庚啊: 16
如果未满18则没有进门左拐显示
执行结果图:
[ fishclocalhost sle11]$.
只有表达式得到的值为真,才会执行 if 语句里的内容,如果没有则直接 return 0,什么都不显示。
If 语句下有 { }大括号,里面有 tab 缩进位,不是必须有的,没有的话程序也是可以正常运行的。
C 语言对于语法的检查还是比较宽松的,但还是强调要加上 { }和缩进,养成良好的习惯,虽然 C 语言不会强制代码一定要写的很规范,但适当的缩进可以让代码一目了然。
用大括号包括起来的语句构成一个语句块。
在 C 语言中用;表示语句的结束,如果表达式后面没有;执行会出错,加上;则是一个完整的语句。
如果用大括号将几个语句包裹起来,那么被包裹起来的语句就构成了语句块,是一个整体。
比如希望 if 后面的表达式为真的时候同时执行多个语句那么就可以用大括号包裹起来。
表达出来的意思是如果怎样就怎样,如果表达式为真,就执行,这就是 if 语句形式(1)。
二、 if 语句形式(2)
If语句形式(2),他表达的意思就是如果怎样就怎样,否则还能怎么样?当表达式的值为真的时候,那么他就执行这里的语句。如果这个表达式的逻辑值为假的话,那么就执行 else 这个大括号里面的这个语句。
…...//其它语句
if(表达式) //为真时,执行下方语句
{
…… //逻辑值为真所执行的语句、程序块
}
e
lse
{
……//逻辑值为假所执行的语句、程序块
}
……//其它语句
代码演示:
#include
int main( )
{
int i;
p
rintf(“
您老贵庚啊
: ");
scanf(
”%d,&i”
);
if ( i >=18)
{
printf(""进门左拐! \n");
}
else
{
printf(“
慢走,不送!
\n”);
}
re
turn 0;
}
三、if 语句形式(3)
如果表达式为真,那么它的执行这一个大括号里的内容,else if 的意思就是这个不符合。那么再接着往下判断第二个情况,如果这个表达式二为真的话,那么就进行这个语句执行。再判断表达式三的内容,如果为真那就执行。前面的条件都不能成立的话,所有表达式返回的值为 0,逻辑值返回为假,那么就执行 else。
……//其它语句
if(表达式1){.......} //表达式1为真时,执行大括号里的内容。
else if(表达式2){.......} //上一个不符合了,则接着往下判断,表达式2为真时,执行打括号里的内容
else if (表达式3){.......} //同上
……..
else if (表达式n){.... }
else {......}
....//其它语句
课堂实践:
帮数学老师做一个按分数评级的程序:
90分及以上:A
80 ~90分:B
70 ~80分:C
60~70分:D
低于60分:E
代码演示:
int main( )
{
int i;
print
f
(
”
请输入分数:
”
);
scanf("%d" , &i);
if (i >= 90)
{
printf(""A\n" );
}
else if (i >= 80&& i < 90){
printf(""B\n"");
}
else if(i >= 70 && i < 80){
printf("C\n");
}
else if (i >=60&&i < 70)
{
printf(""D\n"");
}
else{
print(“E\n”)
}
return 0;
}
代码执行结果如下:
[fishc@localhost slel1l$ vi test3.c
[fishc@localhost sle11]$ gcc test3.c && ./a.out
请输入分数: 99
A
[fishc@localhost slell]$ gcc test3.c && .la.out
请输入分数:91
A
[fishc@localhost s1e11]$ gcc test3.c && ./a.out
请输入分数:89
B
[fishcelocalhost sle11]$ gcc test3.c && ./a.out
请输入分数:60
D
[fishcelocalhost sle11]$ gcc test3.c && ./ a.out
请输入分数:59
E
[fishc@localhost slel1]$ gcc test3.c && ./a.out
请输入分数:11
E
这就是第三种条件比较多的情况。
这个程序就是输入一个具体的分数,然后就显示对应的级别。90分以上只有95分,那就是 a。89分是 b,就是考81分跟考89分都是一个级别。