1. 判断
1.1 if语句
一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。
if(表达式){
执行代码块;
}
表达式为真则执行代码,若为假,不执行。
if(a>b){
printf("%d",a); //输出a的值
}
1.2 if.....else...语句
if(表达式){
代码块;
}else {
代码块;
}
if(age>18){
printf("可以去上网");
} else {
printf("不可以去上网");
}
? 条件运算符 可以用来代替 if ....else.....语句
(num%2==0)?printf("偶数"):printf("奇数");
1.3 switch语句
switch语句会执行完里面的case语句才会跳出。可以在case后加break,执行完本句就会跳出。而if 语句条件不满足就会跳出。
switch(表达式)
{
case 常量表达式1:语句1;
case 常量表达式2:语句2;
...
default:语句n+1;
}
switch(a)
{
case 1:printf("Monday\n");
break;
case 2:printf("Tuesday\n");
break;
case 3:printf("Wednesday\n");
break;
case 4:printf("Thursday\n");
break;
case 5:printf("Friday\n");
break;
case 6:printf("Saturday\n");
break;
case 7:printf("Sunday\n");
break;
default:printf("error\n");
}
1.4 多重 if..else..语句
一个 if 语句后可跟一个可选的 else if...else 语句,这可用于测试多种条件。
当使用 if...else if...else 语句时,以下几点需要注意:
一个 if 后可跟零个或一个 else,else 必须在所有 else if 之后。
一个 if 后可跟零个或多个 else if,else if 必须在 else 之前。
一旦某个 else if 匹配成功,其他的 else if 或 else 不会被测试。
if(判断条件1)
{
/* 1为真时执行 */
}
else if(判断条件2)
{
/* 2为真时执行 */
}
else if(判断条件3)
{
/* 3为真时执行 */
}
else
{
/* 上面条件都不为真时执行 */
}
2.循环
2.1 while循环
条件为真时,执行语句。
while(表达式) {
可执行语句;
}
/* while 循环执行 */
while( a < 20 )
{
printf("a 的值: %d\n", a);
a++;
}
while 循环的关键点是循环可能一次都不会执行。当条件为 false 时,会跳过循环主体,直接执行紧接着 while 循环的下一条语句。
2.2 for循环
允许指定循环的次数
for(表达式1;表达式2;表达式3){
循环语句;
}
- 表达式1会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。
- 接下来,会判断 表达式2。如果为真,则执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着 for 循环的下一条语句。
- 在执行完 for 循环主体后,控制流会跳回上面的 表达式3语句。该语句允许您更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可。
- 条件再次被判断。如果为真,则执行循环,这个过程会不断重复(循环主体,然后增加步值,再然后重新判断条件)。在条件变为假时,for 循环终止。
for( int a = 10; a < 20; a = a + 1 )
{ printf("a 的值: %d\n", a);
}
2.3 do...while 循环
do...while 循环会确保至少执行一次循环。
如果条件为真,控制流会跳转回上面的 do,然后重新执行循环中的 statement(s)。这个过程会不断重复,直到给定条件变为假为止。
do
{
执行语句;
}while( 条件表达式);
/* do 循环执行,在条件被测试之前至少执行一次 */
do
{
printf("a 的值: %d\n", a);
a = a + 1;
}while( a < 20 );
2.4 嵌套循环
for (表达式1; 表达式2; 表达式3)
{
语句1;
for (表达式4; 表达式5; 表达式6)
{
语句2;
... ... ...
}
... ... ...
}
while (表达式1)
{
语句1;
while (表达式2)
{
语句2;
... ... ...
}
... ... ...
}
do
{
语句1;
do
{
语句2;
... ... ...
}while (表达式2);
... ... ...
}while (表达式1);
3.循环控制语句
3.1 continue语句
C 语言中的 continue 语句有点像 break 语句。但它不是强制终止,continue 会跳过当前循环中的代码,强迫开始下一次循环。
对于 for 循环,continue 语句执行后自增语句仍然会执行。对于 while 和 do...while 循环,continue 语句重新执行条件判断语句。
#include<stdio.h>
int main() {
for (int a = 1;a <= 4;a++) {
if (a == 3) {
continue;
}
printf("%d", a);
}
}
3.2 break语句
C 语言中 break 语句有以下两种用法:
- 当 break 语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。
- 它可用于终止 switch 语句中的一个 case。
如果您使用的是嵌套循环(即一个循环内嵌套另一个循环),break 语句会停止执行最内层的循环,然后开始执行该块之后的下一行代码。
#include<stdio.h>
int main() {
for (int a = 1;a <= 4;a++) {
if (a == 3) {
break;
}
printf("%d", a);
}
}
break语句和continue语句的区别
break是结束当前整个循环,continue是结束本轮循环,继续执行下一轮循环
3.3 goto语句
C 语言中的 goto 语句允许把控制无条件转移到同一函数内的被标记的语句。
注意:在任何编程语言中,都不建议使用 goto 语句。因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改。任何使用 goto 语句的程序可以改写成不需要使用 goto 语句的写法。