1.if语句
(1)样式:if(表达式)
语句1
else
语句2
(2)else:和if搭配表示“if的表达之外的”
例子:输⼊⼀个整数,判断是否为奇数,如果是奇数打印是奇数,否则打印数偶数。
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if(num % 2 == 1)
printf("%d 是奇数\n", num);
else
printf("%d 是偶数\n", num);
return 0;
}
注意
:没有{}的时候只会执行一条语句,需要多条语句的时候要加上{}
(3)嵌套if:构成多重判断
⽐如:要求输⼊⼀个整数,判断输⼊的整数是0,还是正数或者负数
int main()
{
int num = 0;
scanf("%d", &num);
if(num == 0)
printf("输⼊的数字是0\n");
else
if(num > 0)
这⾥的if 相当于嵌套在els语句中,形成了嵌套结构
printf("输⼊的数字是正数\n");
else
printf("输⼊的数字是负数\n");
return 0;
}
(4)悬空else的问题:else遵循就近原则,与较近的if匹配,如果前面的if是假的就会不输出了;要是想将第一个if和后面的else匹配 可以将{}引入到中间的if中,将其变成嵌套
2,关系操作符
a == b;
a != b;
a < b;
a > b;
a <= b;
a >= b;
通过表达式返回0/1表示真假
注意:(1)
=是赋值,==才是相等的关系;
(2)
避免一种错误:多个关系运算符不可以连用,比如a<b<c,系统会看成(a<b)<c,将前面的判断真假,再用真假去比较c,想要一个式子用多个关系就要用&&在中间连接。
3,条件操作符:也叫三目操作符(唯一一个)
(1)
exp1 ? exp2 : exp3
逻辑:如果exp1为真,运行exp2;如果假,运行exp3
例如:
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
b = a > 5 ? 3 : -3;
printf("%d\n", b);
return 0;
int b = 0;
scanf("%d %d", &a, &b);
b = a > 5 ? 3 : -3;
printf("%d\n", b);
return 0;
4,逻辑操作符:&&,||,!
!:反运算符,改变真假
&&:并且(一个假就全假)
||:或者(一个真就全真)
短路:
从左到右判断,&&一旦判断到假就停止,||判断到真就停止。
给出一串代码方便理解:
int main()
{
int i = 0,a=0,b=2,c =3,d=4;
i = a++ && ++b && d++;
/ = a++||++b||d++;
printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
return 0;
}
判断结果是:1234//1334
5,switch语句:判断多种情况
例如:
switch
(expression)
{
case
value1: statement
case
value2: statement
default
: statement //如果找不到对应的值就进入default
}
(1)switch有开关的意思,可以形象的将其想象成一个开关,case是它对应的不同结果;
注意:
每个case后面都要有空格与数字连接,并且每个case语句执行完之后要加上break才可以跳出switch。
(2)switch语句中的default:
默认到不做处理的句子
(3)switch语句中case和default没有顺序问题;但是不可以在共同处理的case中插入default。
6,while循环:和if部分相似,但是可
以循环处理
(1)流程:判断表达式,表达式为0就结束,不为0就重复进行
(2)样式:while()
{
}
7,for循环
表达式:for(表达式1;表达式2;表达式3)
语句
(1)表达式1:用于循环变量的初始化;
(2)表达式2:用于循环结束条件的调整;
(3)表达式3:用于循环变量的调整