1.if语句的应用
1.1单句if的应用
格式为:
if ( 表达式 )
语句;
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if (num % 2 == 1)
printf("%d 是奇数\n", num);
return 0;
}
当进入if语句时会从表达式中判断是否满足条件(num % 2 ==1)如果条件成立则输出语句的内容(printf("%d 是奇数\n", num);),否则结束此if语句的循环
1.2else的应用
格式为:
if ( 表达式 )
语句1;
else
语句2;
实操:判断是奇数还是偶数
#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;
}
当进入if语句中如果输出的值能够让条件表达式输出为true则执行语句1的内容,否则进入else那边执行语句2
2.switch语句
格式为:
switch (expression)
{
case value1: statement
case value2: statement
default: statement
}
上⾯代码中,根据表达式 expression 不同的值,执⾏相应的 case 分⽀。如果找不到对应的值, 就执⾏ default 分⽀。
switch 后边的 expression 的结果不是 value1 ,也不是 value2 的时候,就会执⾏ default ⼦句。
在 switch 语句中 case ⼦句和 default ⼦句有要求顺序吗? default 只能放在最后吗? 其实,在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实 际需求的就可以。
不过我们通常是把 default ⼦句放在最后处理的
• switch 后的 expression 必须是整型表达式
• case 后的值,必须是整形常量表达式
实操:判断整除3是否是多少
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
switch (n % 3)
{
case 0:
printf("整除,余数为0\n");
break;
case 1:
printf("余数是1\n");
break;
case 2:
printf("余数是2\n");
break;
}
return 0;
}
上述的代码中,我们要注意的点有:
1. case 和后边的数字之间必须有空格
(如果case和后面的常量无空格编译器会把它们当做一个整体这样不符合标准会提示报错)
2. 每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句。
(如果不在case语句中加上break这个case语句的语句则不执行直接跳过)
3.while
格式:
if(表达式)
语句;
while(表达式)
语句;
实操:打印1-10的值
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d ", i);
i = i + 1;
}
return 0;
}
当进入while循环打印1-10时,当变量i符合条件表达式(i <= 10)打印i,i数值一直变大直到不符合条件表达式时退出循环
4.for循环
格式:
for(表达式1; 表达式2; 表达式3)
语句;
表达式1 ⽤于循环变量的初始化
表达式2 ⽤于循环结束条件的判断
表达式3 ⽤于循环变量的调整
(变量i为例)一开始以用表达式1来初始化i,当表达式2的值为真时进行下面的语句,然后调整i的值,在进行第二次的循环,之后如以上所说的当表达式的值为假时退出循环。
整个循环的过程中,表达式1初始化部分只被执⾏1次,剩下的就是表达式2、循环语句、表达式3在循 环。
实操:打印1-10的值
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
printf("%d ", i);
}
return 0;
}
for 和 while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是 for 循环的三个部 分⾮常集中,便于代码的维护,⽽如果代码较多的时候 while 循环的三个部分就⽐较分散,所以从形 式上 for 循环要更优⼀些。
5.do ... while
格式:
do
语句;
while(表达式);
do while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表 达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。
实操:打印1-10的值
#include <stdio.h>
int main()
{
int i = 1;
do
{
printf("%d ", i);
i = i + 1;
} while (i <= 10);
return 0;
}
6.go to语句
实操:
#include <stdio.h>
int main()
{
printf("hehe\n");
goto next:
printf("haha\n");
next:
printf("跳过了haha的打印\n");
return 0;
}
goto 语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以我们的建 议是能不⽤尽量不去使⽤;但是 goto 语句也不是⼀⽆是处,在多层循环的代码中,如果想快速跳出 使⽤ goto 就⾮常的⽅便了。