一:if语句
*if else
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if(num % 2 == 1)
printf("%d 是奇数\n", num);
else
printf("%d是偶数",num);
return 0;
}
*默认在 if 和 else 语句中默认都只控制⼀条语句。使用{}可以控制多条语句
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d";&age);
if(age >= 18)
{
printf("成年了\n");
printf("可以谈恋爱了\n");
}
//if 后使⽤{} 控制多条语句-这个块也叫:程序块,或者复合语句
else
{
printf("未成年\n");
}
//else 后使⽤{}控制多条语句-这个块也叫:程序块,或者复合语句
return 0;
}
*嵌套if
*在 if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断。
#include <stdio.h>
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 和 else , else 总是跟最接近 的 if 匹配。
#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匹配,可以这样修改代码
#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;
}
二:关系操作符
*关系表达式中通常返回值为0或者1,表示真假
*C 语⾔中, 0 表⽰假,所有⾮零值表⽰真。⽐如, 20 > 12 返回 1 , 12 > 20 返回 0
==表示判断 =表示赋值
*多个关系操作符不宜连用
(i<j<k)
//上⾯式⼦中, i < j 返回 0 或 1 ,所以最终是 0 或 1 与变量 k 进⾏⽐较
正确的写法是
(i<j&&j<k)
三:逻辑操作符
• ! :逻辑取反运算符(改变单个表达式的真假)。
• && :与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)。
• || :或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)。
四:短路
*C语⾔逻辑运算符还有⼀个特点,它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是 保证的。如果左边的表达式满⾜逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为“短 路”。