一、if分支
1.可以在程序中单独使用if语句,但是else和elseif不能单独使用。
2.if条件判断语句下面只有一个语句的话可以省略{},但是不建议省略。
3.如果省略了{},else、elseif会向上匹配遇到的第一个并且结合后符合语法的if组合起来。
#include <stdio.h>
int main()
{
int num = 0;
printf("请输入一个整数:");
scanf("%d", &num);
if (100 < num)
if(150 < num)
printf("%d\n", num);
else
printf("no\n");
return 0;
}
这个例子就说明它会从下到上匹配一个if和它相结合。
4.我们平时写if条件判断时,最好把常量写在左边,把变量写在后面,这是因为如果不这样写的话,程序在编译阶段很难找到错误;如果我们把常数写在左值,那么在编译阶段就能很快检测到错误,因为如果输入错误的话,变量不能赋值给常量,这就是左值为常数的好处。
5.if后面不能加;,else if后面也不能加;
二、switch分支
1.switch()括号里面的值必须是一个整型;
2.case后:必须是一个整型常量(需要的是一个确定的值);
3.break一般情况下不能漏写。在default后面可以省略break;
三、浮点数比较大小
注意:浮点数比较大小的时候需要引入#include <math.h>这个头文件,然后调用fabs()方法来比较。
#include <stdio.h>
#include <math.h>
int main() {
if (fabs(a - b) < 1e-9) {
printf("a等于b\n");
} else if (a < b) {
printf("a小于b\n");
} else {
printf("a大于b\n");
}
return 0;
}
这里使用了 1e-9 作为极小值判断条件,也可以修改。另外注意fabs()和abs()的区别:fabs()是对浮点数求绝对值,abs()是对整数求绝对值。
四、while循环
while()
{
}
括号里面的是循环条件,满足进入循环。
五、do while循环
do
{
}while();
它和while循环最大的区别就在于它不管如何都是先做一次,再判断
六、for循环
for(表达式1;表达式2;表达式3)
{
语句块A
}
表达式1:初始化:进入循环之前的准备工作;表达式2:循环结束条件,决定循环在什么时候退出;表达式3:循环变量改变,推动循环趋向结束的代码
七、for循环嵌套
就是在for循环里面再嵌套一层for循环,上层控制的是遍数,下层是控制的是次数。
八、goto语句循环
flag:
语句块
goto flag;
goto:可以跳转到程序的任意位置开始执行;过度使用goto语句,会严重破坏程序的逻辑结构,极大降低可读性。