控制语句-if
一、学习目标
1.了解顺序语句,分支语句、循环语句。
2.掌握if~else语句的使用
3.总结与思考
二、C语言控制语句概述
- 分支:
- if() ~ else ~
- switch
- 循环:
- for()~
- while()~
- do~while()
- goto
- 辅助控制:
- continue
- break
- return
三、if~else语句
-
if语句概述
if(表达式)
语句块1
else
语句块2 -
常见形式
- 简化形式
- if(表达式)语句块
- 阶梯形式
- 嵌套形式
- 简化形式
-
例子分析:
①输入分数
②判断是否合法
③评级分为A:[90,100]、B:[70,90]、C:[60,70]、D:[0,60]分别对应不同的成绩段 -
if~else语句注意事项
-
语句块:当有若干条语句时,必须用{……}括起来。
-
表达式:
-
一般情况下为逻辑表达式或关系表达式
如:if(a == b && x == y) printf(“a = b , x = y”);
-
也可以是任意类型(包括整型、实型、字符型、指针类型)
如:if(‘a’) printf("%d", ‘a’);
-
请区分if( x = 1)与if(x == 1)的不同。
-
-
四、编程实例
-
学生成绩(if()~ else ~)
#include <stdio.h> int main() { float score; printf("please input your score:"); scanf("%f", &score); if(score < 0 || score > 100){ printf("not in [0 , 100]\n"); } else{ if(score >= 90) printf("A-Excellent!\n"); else{ if(score >= 70) printf("B-Good!\n"); else{ if(score >= 60) printf("C-Ok!\n"); else printf("D-Not pass!\n"); } } } return 0; }
-
用逻辑与&&进行分析
#include <stdio.h> int main() { float score; printf("please input your score:"); scanf("%f", &score); if(!(score >= 0 && score <= 100)){ printf("not in [0 , 100]\n"); } else{ if(score >= 90) printf("A-Excellent!\n"); else{ if(score >= 70) printf("B-Good!\n"); else{ if(score >= 60) printf("C-Ok!\n"); else printf("D-Not pass!\n"); } } } return 0; }
-
区分if(x = 0)和if(x == 0)
#include <stdio.h> int main(){ int x = 7; if(x = 8) printf("if:x=%d\n",x); else printf("else:x=%d\n",x); return 0; }
- 运行结果:if(x = 8),x=8为将8赋值给x
if$ ./a.out if:x=8
#include <stdio.h> int main(){ int x = 7; if(x == 8) printf("if:x=%d\n",x); else printf("else:x=%d\n",x); return 0; }
- 运行结果: if(x == 8),x等于8
$ ./a.out else:x=7
#include <stdio.h> int main(){ int x = 7; if(8 = x) printf("if:x=%d\n",x); else printf("else:x=%d\n",x); return 0; }
-
运行结果:if(8 = x) 将数字放到等号左边,必须使用==,否则会报错
if$ gcc if.c -Wall if.c: In function ‘main’: if.c:7:7: error:lvalue required as left operand of assignment if(8 = x)
- 运行结果:if(x = 8),x=8为将8赋值给x
-
排序
#include <stdio.h> int main(){ float a = 4, b = 5, c = 2, t; if(a > b){t = a; a = b; b = t;} if(a > c){t = a; a = c; c = t;} if(b > c){t = b; b = c; c = t;} printf("%5.2f,%5.2f,%5.2f\n", a, b, c); return 0; }
-
运行结果:
if$ ./a.out 2.00, 4.00, 5.00
-