0%

判断-if

我来一步一步整理前面所学,回顾。

这一篇讲 if 语句,后面要用 { } 的原因。


if 语句

if语句可以判断条件是否满足,满足时才做相应的动作。

一个基本的if语句由一个关键字if开头,跟上在括号里的一个表示条件的逻辑表达式,然后是一对大括号”{}”之间的若干条语句。如果表示条件的逻辑表达式的结果不是零,那么就执行后面跟着的这对大括号中的语句,否则就跳过这些语句不执行,而继续下面的其他语句

if(total > amount)

total += amount+ 1 0;

if语句中,圆括号中有表达式,如果这个表达式的计算结果不是0,那么条件成立。就还会继续做后面 大括号的语句。如果条件不成立,就会跳过。

if语句还有种形式,if后面没有大括号的时候,紧跟着if后面那一句,就会成为条件要执行的那句话。

if ( total > amount )

total += amount+ 10;

在if语句的圆括号后面,要么是有一对大括号,要么跟着一句一句。不能在if ( total > amount )语句后直接 加 ; 只有和 total += amount+ 10; 连在一起,才是整个 if 语句。

if语句拥有和控制这条赋值语句,决定它是否要被执行。

091510354633_0image-20200915103219770


程序

计算薪水

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>

int main()
{
const double RATE = 8.25;
const int STANDARD = 40;
double pay = 0.0;
int hours;

printf("请输入工作的小时数: ");
scanf("%d", &hours);
printf("\n");
if (hours > STANDARD)
pay = STANDARD * RATE +
(hours-STANDARD) * (RATE * 1.5);
else
pay = hours * RATE;
printf("应付工资: %f\n", pay);

return 0;
}

这则程序没有使用大括号

else
pay = hours * RATE;

后面打了 ; 表明这则判断语句结束。

程序判断完 输出: printf("应付工资: %f\n", pay);

判断成绩

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>

int main()
{
const int PASS=60;
int score;

printf("请输入成绩: ");
scanf("%d", &score);

printf("你输入的成绩是%d.\n", score);
if ( score < PASS )
printf("很遗憾,这个成绩没有及格。");
else {
printf("祝贺你,这个成绩及格了。");
printf("再见\n");
}

return 0;
}

这则程序 else 添加 { } 包括了两个条件

printf("祝贺你,这个成绩及格了。");
printf("再见\n");

运行结果:

4

如果 printf("再见\n"); 在 else 的括号外,

那就是 不及格也会显示 再见

image-20200915111719796

这就是 在判断语句中 { } 里和 { } 外的区别。


为什么强调if和else后面要用{}

  • 有大括号语句执行括号内的所有语句,没有括号则只执行一条语句。
  • 方便阅读容易找到所属关系。