目录
一、if 语句
1. if
if ( 表达式 )
语句
2. else
if ( 表达式 )
{
语句1
语句2
}
else if
{
语句3
语句4
if ....
else if ....
else ....
}
else
{
语句5
}
一条规则:else 总是和最接近的 if 匹配
二、关系操作符
> < >= <= == != (多个操作符不宜连用)
三、条件操作符
条件操作符又称三目操作符
exp1 ? exp2 : exp3
//如果 exp1 为真, exp2 计算,计算的结果是整个表达式的结果;
//如果 exp1 为假, exp3 计算,计算的结果是整个表达式的结果。
四、逻辑操作符
!:逻辑取反运算符(改变单个表达式真假)
&& :逻辑与运算符,就是并且的意思
|| :逻辑或运算符,就是或者的意思
五、switch 语句
switch (expression)
{
case value1:
statement
break;
case value2:
statement
break;
default:
statement
break;
}
//switch 后的 expression 必须是整型表达式
//case 后的值,必须是整形常量表达式
//break:跳出switc语句,没有就继续执行,也不是每个case语句都要有,看情况
//default语句没有顺序要求,通常放最后
六、while 循环
while(表达式)
语句;//如果循环体想包含更多的语句,可以加上⼤括号
//break:永久终止循环
//continue:跳过本次循环中continue后面的代码,继续下次循环
练习:
输⼊⼀个正的整数,逆序打印这个整数的每⼀位
例如:
输⼊:1234,输出:4 3 2 1
输⼊:521,输出:1 2 5
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
while (n)
{
printf("%d ", n % 10);
n /= 10;
}
return 0;
}
七、for 循环
for(表达式1; 表达式2; 表达式3)
语句;//如果循环体想包含更多的语句,可以加上⼤括号
//表达式1 ⽤于循环变量的初始化
//表达式2 ⽤于循环结束条件的判断
//表达式3 ⽤于循环变量的调整
//形式上,for循环的三个部分非常集中,便于代码的维护
//break的作用是永久的终止循环
//for循环中continue的作用是跳过本次循环中continue后的代码,直接去到循环的调整部分
八、do-while 循环
do
语句;
while(表达式);
//break和continue的作用与while循环中几乎一模一样
练习:
输⼊⼀个正整数,计算这个整数是⼏位数?
例如:
输⼊:1234 输出:4
输⼊:12 输出:2
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int cnt = 0;
do
{
cnt++;
n = n / 10;
} while (n);
printf("%d\n", cnt);
return 0;
}
九、循环嵌套
#include <stdio.h>
int main()
{
int i = 0;
//循环产⽣100~200的数字
for (i = 100; i <= 200; i++)
{
//判断i是否为素数
//循环产⽣2~i-1之间的数字
int j = 0;
int flag = 1;//假设i是素数
for (j = 2; j < i; j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
printf("%d ", i);
}
return 0;
}
十、goto 语句
#include <stdio.h>
int main()
{
printf("hehe\n");
goto next;
printf("haha\n");
next:
printf("跳过了haha的打印\n");
return 0;
}
//goto 语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程
//我们的建议是能不⽤尽量不去使⽤;
//goto 语句也不是⼀⽆是处,在多层循环的代码中,如果想快速跳出使⽤ goto 就⾮常的⽅便了
for (...)
{
for (...)
{
for (...)
{
if (disaster)
goto error;
}
}
}
error:
//...