根据比较的结果,决定做、还是不做某些动作,就要用到if语句。
一个基本的if语句由一个关键字if开头,跟上在括号里的一个表示条件的逻辑表达式,然后是一对大括号“{}”之间的若干条语句。
如果表示条件的逻辑表达式的结果为true,那么就执行后面跟着的这对大括号中的语句,否则就跳过这些语句不执行,而继续下面的其他语句。
int hour1,minute1;int hour1,minute1;scanf("%d %d", &hour1, &miute1);scanf("%d %d", &hour1, &miute1);int ih = hour2 - hour1;int im = minute2 - minute1;if ( im<0 ) {im = 60 + im;ih --;}printf("时间差是%d小时%d分。n", ih, im);
2.判断的条件关系运算符,也叫比较运算符,用来做比较
3.关系运算的结果当两个值的关系符合关系运算符的预期时,关系运算的结果为1,否则为0
printf("%dn",5==3);printf("%dn",5>3);printf("%dn",5<=3); 4.关系运算符的优先级
所有的关系运算符的优先级比算术运算的低,但是比赋值运算的高
7 >= 3 + 4int r = a>0 [^a>0成立之后才会再将a>0之后所得的结果赋值给r]
判断是否相等的==和!=的优先级比其他的低,而连续的关系运算是从左到右进行的
5 > 3 == 6 > 46 > 5 > 4a == b == 6a == b > 0 5.找零计算器
C语言中的注释方法:/需要注释的文字/ 或者 //在文字开头
单行注释是C99独有的,多行的是C传统的
eles = 否则的话 7.if语句另一种表达方法
圆括号后面没有分号当没有大括号的时候,紧跟在if后的那句话就是条件成立时执行的那句话eles后面一
样也可以没有大括号 问题: 为什么强调使用第一种有大括号的方法?
强调if和eles后面要用{}是为了避免错误配对,eles会和最近的if配对,方便理解。
不加括号后只能接一条语句,如果是两条及以上,后面的else会失效报错。编写程序更需要良好的维护性完整性和程序可读性,完整的括号更便于阅读理解和维护。
/ / 会被替换为什么?/ * * /是注释,编译器不管其中的内容。但是有没有想过编译器会把它替换成什么呢?是一个空格?还是不留痕迹?可以写代码来测试你用的编译器吗?
无痕迹编译
在把代码翻译成汇编代码前,有一个步骤叫预处理。在预处理当中会把注释代码干掉。
可以使用以下命令来进行预处理: gcc -E hello.c -o hello.i hello.i 里面就是预处理后的代码。
一条语句前的注释 => 等长的空格; 一条语句中的注释 => 一个空格; 一条语句后的注释 => 直接删除。
E hello.c -o hello.i hello.i 里面就是预处理后的代码。
一条语句前的注释 => 等长的空格; 一条语句中的注释 => 一个空格; 一条语句后的注释 => 直接删除。