if-else语句
c
语言是一门结构化设计语言支持三种结构顺序,选择,循环结构,在c
语言中
0
表示为假,非
0
表示真.
例子:输入一个整数判断其是否为奇数
#include<stdio.h>
int main()
{
int a = 0;
printf("请输入");
scanf("%d", &a);
if (a % 2==0 )
{
printf("你输入的数为偶数\n");
}
else
{
printf("你输入的数为奇数\n");
}
return 0;
}
注意:if后面默认为跟一条else语句,如果跟两条语句就需要加一个{}
嵌套if
在if和else中,else可以与另一个if连用,构成多重判断
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
if (n == 0)
{
printf("输入的值是0\n");
}
else if(n>0)
printf("正数\n");
else
printf("负数\n");
return 0;
}
注意:if和else都可以嵌套
悬空else问题
如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。 我们⾸先从下⾯代码开始理解
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匹配,带上大括号可以提升代码逻辑让可读性更高
关系操作符
> 大于运算符
>= 大于等于运算符
<= 小于等于运算符
== 相等运算符
!= 不相等运算符
关系表达式返回0或者1,表示真假, == 相等运算符与=赋值运算符要注意
多个运算符不易连用,例如
int a=3;
int b=20;
int c=4
if(a<b<c)//a<b成立为真1,1<4打印1
printf("1");
else
printf("0")
条件操作符
双目操作符:+ = * / %
单目操作符:++ -- + - &
三目操作符(条件操作符):表达式1?表达式2:表达式3,条件操作符的计算逻辑是:如果 exp1 为真, exp2 计算,计算的结果是整个表达 式的结果;如果exp1 为假, exp3 计算,计算的结果是整个表达式的结果。
逻辑操作符
&& || ! 并,或,反
一个局部变量不初始化,是随机值,若是全局变量不初始化则是
1
int main()
{
int flag = 0;
if (!flag)
printf("do something");
return 0;
}
逻辑与运算符
必须两个同时满足
int main()
{
int mouth = 0;
scanf("%d",&mouth);
if (mouth >= 3 && mouth <= 5)
printf("spring");
return 0;
}
逻辑或
||
短路
C
语言逻辑运算符还有⼀个特点,它总是先对左侧的表达式求值,再对右边的
表达式求值,这个顺序是保证的。
如果左边的表达式满⾜逻辑运算符的条件,就不再对右边的表达式求值。这种
情况称为
“
短路
”
。
&&
左边为假,右边不再计算,总体为假
||
左边为真,右边无需计算,总体为真
switch
语句
除了
if
语句外,
C
语⾔还提供了
switch
语句来实现分⽀结构。
switch
语句是⼀种特殊形式的
if...else ?
结构,用于判断条件有多个结果的情况。它
把多重的
else if
改成更易⽤、可读性更好的形式
switch (expression){case value1 :statementcase value2 :statementdefault :statement}
switch
后的
expression
必须是整型表达式
case
后的值,必须是整形常量表达式
注意每个
case
后面的
break
不要忘记
default
处理所有
case
都不能匹配的情况,没有明确顺序要求,但是通常是放在
最后
while
循环语句
while
可以实现循环效果
1
、
break
用于
跳出一个循环体或者完全结束一个循环
,不仅可以结束其所在的
循环,还可结束其外层循环。
2
、
continue
语句的作用是
跳过本次循环体中剩下尚未执行的语句,立即进行
下一次的循环条件判定
,可以理解为只是中止
(
跳过
)
本次循环,接着开始下一
次循环。
例题
输⼊⼀个正的整数,逆序打印这个整数的每⼀位
例如:
输⼊:
1234
,输出:
4 3 2 1
输⼊:
521
,输出:
1 2 5
题⽬解析
1.
要想得到
n
的最低位,可以使⽤
n%10
的运算,得到的余数就是最低位,如:
1234%10
得到
4
2.
要想去掉
n
的最低位,找出倒数第⼆位,则使⽤
n=n/10
操作就可以去掉最低
位的,如:
n=1234/10
得到
123
,
123
相较于
1234
就去掉了最低位,
123%10
就
得到倒数第⼆位
3
。
3.
循环
1
和
2
两个步骤,在
n
变成
0
之前,就能到所有的位。
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
while(n)
{
printf("%d ", n%10);
n /= 10;
}
return 0;
}