- 定义一个变量时最好先初始化一个0
for循环的使用
- 下面是一个关于打印奇数与偶数的代码
int main()
{
int num = 0;
scanf("%d", &num);
if (num % 2 == 1)
printf("%d 是奇数\n", num);
else
printf("%d 是偶数\n", num);
return 0;
}
- for和else只执行下面一条语句,如果要执行多个语句,那么加一个大括号
- 嵌套if
在 if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断。⽐如:要求输⼊⼀个整数,判断输⼊的整数是0,还是正数或者负数。下面是两种写法,请看如下代码:
int main()
{
int num = 0;
scanf("%d", &num);
if (num == 0)
printf("输入的数字是0\n");
else
{
if (num > 0)
printf("输入的数是正数\n");
else
printf("输入的数是负数\n");
}
return 0;
}
int main()
{
int num = 0;
scanf("%d", &num);
if (num == 0)
printf("输入的数字是0\n");
else if (num > 0)
printf("输入的数是正数\n");
else
printf("输入的数是负数\n");
return 0;
}
再⽐如:要求输⼊⼀个整数,如果是正数,再判断是奇数还是偶数,并输出;如果不是正数则输出不在这里插入代码片是整数。
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if(num>0)
{
if(num%2 == 0)
printf("偶数\n");
else
printf("奇数\n");
}
else
{
printf("输⼊的值是负数\n");
}
return 0;
}
输⼊⼀个⼈的年龄
如果年龄<18岁,打印"少年"
如果年龄在18岁⾄44岁打印"⻘年"
如果年龄在45岁⾄59岁打印"中⽼年"
如果年龄在60岁⾄89岁打印"⽼年"
如果90岁以上打印"⽼寿星"
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
printf("少年\n");
else
{
if (age <= 44)
{
printf("青年\n");
}
else
{
if (age < 59)
printf("中老年\n");
else
{
if (age < 89)
printf("老年\n");
else
printf("老寿星\n");
}
}
}
return 0;
}
将上面这个代码简化后
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
printf("少年\n");
else if (age <= 44)
printf("青年\n");
else if(age < 59)
printf("中老年\n");
else if (age < 89)
printf("老年\n");
else
printf("老寿星\n");
return 0;
}
- 悬空else问题
如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。
例如,下面代码输出什么
1 #include <stdio.h>
2 int main()
3 {
4 int a = 0;
5 int b = 2;
6 if(a == 1)
7 if(b == 2)
8 printf(“hehe\n”);
9 else
10 printf(“haha\n”);
11 return 0;
12 }
这个代码最后什么也不输出,它相当于下面
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
{
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
}
return 0;
}
- 那个else是属于第二个if的而第二个if有事属于第一个if的
关系操作符
== 相等运算符
!= 不相等运算符
关系表达式通常返回 0 或 1 ,表⽰真假。
C 语⾔中, 0 表⽰假,所有⾮零值表⽰真。 - ⼀个需要避免的错误是:多个关系运算符不宜连⽤。
int main()
{
int i = 8;
int j = 10;
int k = 9;
if (i < j < k)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
这里最终输出的是hehe
上⾯⽰例中,连续使⽤两个⼩于运算符。这是合法表达式,不会报错,但是通常达不到想要的结果,即不是保证变量 j 的值在 i 和 k 之间。因为关系运算符是从左到右计算,所以实际执⾏的是下⾯的表达式。(i < j) < k即1<k
如果要表示这种关系:i < j && j < k