目录
- 做判断:if语句
- 判断的条件
- 找零计算器
- 如果条件不成立
- 做判断
根据比较的结果,决定做、还是不做某些动作,就要用到if语句。
一个基本的if语句由一个关键字if开头,跟上在括号里的一个表示条件的逻辑表达式,然后是一对大括号“{}”之间的若干条件句。如果表示条件的逻辑表达式的结果为true,那么就执行后面跟着的这对大括号中的语句,否则就跳过这些语句不执行,而继续下面的其他语句。
#include <stdio.h>
int main()
{
int hour1, minute1;
int hour2, minute2;
scanf("%d %d", &hour1, &minute1);
scanf("%d %d", &hour2, &minute2);
int ih = hour2 - hour1;
int im = minute2 - minute1;
if ( im <0 ) {
im = 60 + im;
ih --;
}
printf("时间差是%d小时%d分。\n", ih, im);
return 0;
}
if语句也可以有另外一种形式,这种形式就是我们可以没有后面的那对大括号,当我们没有后面那个对括号的时候,那么紧跟在if后面的那句话就会作为条件成立时要执行的那句话。所以在if语句的原括号后面要么有大括号要么就跟着一句的话,不能在原括号后面跟上;。
if ( total > amount )
total += amount+ 10;
if语句这一行结束的时候并没有表示语句结束的“;”,而后面的赋值语句写在if的下一行,并且缩进了,在这一行结束的时候有一个表明语句结束的“;”。这表明这条赋值语句是if语句的一部分,if语句拥有和控制这条赋值语句,决定他是否要被执行。
注:不带大括号,只执行后面最近的一条语句;
带大括号的话,则执行括号里的语句块。
- 判断的条件
计算机的智能是建立在规则的基础上的,在遇到情况的时候,根据事先制定的规则做出判断,是计算机最基本的能力。
能做判断的基础,是能对数据作比较,比较就是关于两个数据是否相等、谁大谁小的结论,这需要用到关系的计算。
C语言提供了六个关系运算符:
== 相等
!= 不相等
> 大于
>= 大于或等于
< 小于
<= 小于或等于
注意其中有两个字符的运算符:==、>=和<=的两个字符必须紧紧连在一起,中间不能插入空格。
关系运算的结果是一个逻辑值,逻辑值只有两种可能的值:true(真,表示成立)或false(假,表示不成立)。当两个值的关系符合关系运算符的预期时,关系运算的结果为ture,否则为false。
#include <stdio.h>
int main()
{
printf("%d\n", 5==3);
printf("%d\n", 5>3);
printf("%d\n", 5<=#);
return 0;
}
当两个值的关系符合关系运算符的预期时,关系运算的结果为整数1,否则为整数0。
所有的关系运算符的优先级比算术运算的低,但是比赋值运算的高。
7 >= 3 + 4
意思就是3和4会先加起来然后再去与7进行比较
判断是否相等的==和!=的优先级比其他的低,而连续的关系运算是从左到右进行的
- 找零计算器
找零计算器需要用户做两个操作:输入购买的金额,输入支付的票面,而找零计算器则根据用户的输入做出相应的动作:计算并打印找零,或告知用户余额不足以购买。
从计算机的程序角度看,这就是意味着程序需要读用户的两个输入,然后进行一些计算和判断,最后输出结果。
# include <stdio.h>
int main()
{ // 初始化
int price = 0;
int bill = 0;
// 读入金额和票面
printf("请输入金额: ");
scanf("%d", &price);
printf("请输入票面: ");
scanf("%d", &bill);
// 计算找零
printf("应该找您: %d\n", bill - price);
return 0;
}
- 如果条件不成立
-
#include <stdio.h> int main() { // 初始化 int price = 0; int bill = 0; // 读入金额和票面 printf("请输入金额: "); scanf("%d", &price); printf("请输入票面: "); scanf("%d", &bill); // 计算找零 if ( bill >= price ) { printf("应该找您 : %d\n", bill - price); } else { printf("您的钱不够\n"); } return 0; }
如果条件不成立我们可以在if后面的大括号后面加上else,意为否则的话:。