目录
一.if else 语句
形式一:
if(表达式)
{
语句1;
}
else
{
语句2;
}
形式二:
if(表达式){
语句1;}
形式三:
if(表达式)
{
语句1;
}
else if(表达式)
{
语句2;
}
else if(表达式)
{
语句3;}
else{
语句4;
}
注意要点:
- 注意else总是与最接近的if匹配,所以在写程序的时候尤其注意花括号的使用“{ }”,可以使得代码更有条理也更方便阅读。
- 写if else循环的时候,可以考虑从最特殊的情况开始写,会更容易写。
二. 表达式
1.关系运算符
在C语言中,用于比较的表达式,称为“关系表达式”,里面使用的运算符称为关系运算符。
关系表达式有以下六个:
-
> 大于。
-
< 小于。
-
>= 大于等于。
-
<= 小于等于。
-
== 相等。
-
!= 不相等。
写个例子吧:求最大公约数的代码。里面就用了很多关系操作符。
#include <stdio.h>
int main()
{
int a, b = 0;
scanf("%d %d", &a, &b);
while (a != b)
{
if (a > b)
{
a = a - b;
}
else
{
b = b - a;
}
}
printf("%d", a);
return 0;
}
请记住在C语言中,0表示假,非零值表示真。
2.条件操作符
条件操作符也叫三目操作符,需要接受三个操作数。
格式:
exp1 ? exp2 : exp3
举个例子:
很简单,输入两个数,如果a大于5,则b等于3,反之b等于负三。如果用if esle语句来写是这样的。
#include <stdio.h>
int main()
{
int a, b = 0;
scanf("%d %d", &a, &b);
if (a > 5)
{
b = 3;
}
else
{
b = -3;
}
printf("%d", b);
return 0;
}
可如果用条件操作符来写,则可以变成这样。
int main()
{
int a, b = 0;
scanf("%d %d", &a, &b);
b = a > 5 ? 3 : -3;
printf("%d", b);
return 0;
}
看是不是简单了很多,所以适当的使用条件操作符可以使得代码变得简单易读。
3.逻辑操作符
1.!逻辑取反操作符。
int main()
{
int a = 0;
if (!a)
{
printf("%d", a);
}
return 0;
}
这里就是用了逻辑取反操作符,还记得刚刚说的,C语言中0为假,非零是真。所以这里的a是假,但是“!a”是真,所以执行if语句打印a的值。
2.&& 与操作符。
int main()
{
int mon = 0;
scanf("%d", &mon);
if (mon >= 3 && mon <= 5)
{
printf("春季");
}
return 0;
}
这里是判断春季的代码,只有mon大于等于三月且mon小于等于五月,才能被判断为春季。“&&”与这个逻辑操作符有点像汉语里面的并且的意思。两个都要满足才能被判断为真。
3.|| 或操作符。
int main()
{
int mon = 0;
scanf("%d", &mon);
if (mon == 9 || mon == 10)
{
printf("秋季");
}
return 0;
}
“||”或操作符,两个条件满足一个即可。
4.短路
根据左操作数的结果就能知道整个表达式的结果,不再对右操作数进⾏计算的运算称为短路求值。
三.switch语句
switch语句的一般形式
switch(表达式)
{
case 常量1:语句1;case 常量2:语句2;
case 常量3:语句3;
}
或者多组case共用一个执行语句
switch(表达式)
{
case 常量1:
case 常量2:
case 常量3:语句1;
}
算了,估计你们看完这个格式之后又是一头雾水,举例子。
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:printf("工作日"); break;
case 2:printf("工作日"); break;
case 3:printf("工作日"); break;
case 4:printf("工作日"); break;
case 5:printf("工作日"); break;
case 6:printf("休息日"); break;
case 7:printf("休息日"); break;
}
return 0;
}
像判断一个星期里面有哪几天是工作日,休息日,可以用上面的办法,也可以简单一点。
如下图:
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:printf("工作日"); break;
case 6:
case 7:printf("休息日"); break;
}
return 0;
}
这样简单多了,演示完了就应该明白了。
对了,每个case后面记得写一下break,这是个好习惯,爱你们,啵啵😘😘
四.while语句
基本格式:
while(表达式)
{
}
while和if比较相似,但while和if还是有差别的。
int main()
{
if (1)
{
printf("hhhhhh");
}
return 0;
}
这个if的循环只会打印一次
int main()
{
while (1)
{
printf("hhhhhhh");
}
return 0;
}
while会死循环的打印hhhhh,这个时候应该果断地按住CTRL+c。(¬‿¬)
这就是这两个的区别,while 可以实现循环。
写个正经的例子,让你们感受一下while:(づ ̄3 ̄)づ╭❤️~
输入一个正的整数,然后逆序打印这个整数的每一位
int main()
{
int n = 0;
scanf("%d", &n);
while(n)
{
printf("%d ", n%10);
n /= 10;
}
return 0;
}
while循环就先讲到这。
五.for循环
一.基本格式
for(表达式1; 表达式2; 表达式3)
语句;
- 表达式1 ⽤于循环变量的初始化
- 表达式2 ⽤于循环结束条件的判断
- 表达式3 ⽤于循环变量的调整
二.和while循环的区别
for循环的初始化,判断,调整这三个部分较为集中,便于维护代码,而while的这三部分较为分散,所以从形式上来说,for循环是优于while循环的。
三.练习一下
计算1~100之间3的倍数的数字之和
int main()
{
int i = 0;
int sum = 0;
for(i=1; i<=100; i++)
{
if(i % 3 == 0)
sum += i;
}
printf("%d\n", sum);
return 0;
}
六.do while语句
一.基本格式
do 语句;
while(表达式);
do while不同于其他的语句,do while是先进入循环体,再去判断,所以在do while语句中循环体是至少被执行一次的。这是它比较特殊的地方。
七.goto语句
一.基本格式
int main()
{
printf("hehe\n");
goto next:
printf("haha\n");
next:
printf("跳过了haha的打印\n");
return 0;
}
算了,举例子吧。
goto 语句是可以实现跳转的,但使用的不好,就会在函数内部乱跳。在多层循环的代码里,如果想快速跳出,使用goto还是非常不错的。
总结
总算写完了,好累,但是还是想说谢谢能看到这里的各位,鄙人笔力不足,见识浅薄,多有不足之处,还请不吝赐教。爱你们,啵啵😘