一、分类
①分支语句: if switch
②循环语句: while for do while
③goto语句
二、分支
if语句
1、if的三种表达方式
①
if(表达式)
语句;
②
if(表达式)
语句1;
else
语句2;
③
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
2、
if语句默认只控制一条语句,控制多条语句要加{ }
3、悬空else
else是和离他最近的if语句匹配
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1)
{
if(b == 2)
{
printf("hehe\n");
}
}
else
{
printf("haha\n");
}
return 0;
}
swich语句
1、
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
m++;
case 2:
n++;
case 3:
switch (n)
{//switch允许嵌套使用
case 1:
n++;
case 2:
m++;
n++;
break;
}
case 4:
m++;
break;
default:
break;
}
printf("m = %d, n = %d\n", m, n);
return 0;
}
2、如果不写break,则向下继续读取
三、循环
PS:第一次进入循环都是先进行条件判断。
while语句
1、
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d ", i);
i = i + 1;
}
return 0;
}
2、循环中的break、continue
break永久终止循环;continue终止本次循环,执行语句从while第一行重新开始执行
for语句
1、 for(初始化;判断;调整)
(括号内的三个条件都可以省略)
跟while语句类似,for语句三个条件集中,比while语句鲜明
#include<stdio.h>
int main()
{
for (int n = 0; n < 10; n++)
printf("%d", n);
return 0;
}
do while循环
1、do while循环跟其他循环不同的是,do while至少循环一次,在最后判断是否继续循环
#include<stdio.h>
int main()
{
int a = 0;
do
{
printf("%d", a);
a++;
} while (a == 0);
return 0;
四、goto
C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。 从理论上 goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。 但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过 程,例如一次跳出两层或多层循环。 这种情况使用break是达不到目的的。它只能从最内层循环退出到上一层的循环。
下面是使用goto语句的一个例子:
void deal(int poker[], int player1[], int player2[], int player3[])
{
int times1 = 0;//发牌的次数
int times2 = 0;
int times3 = 0;
for (int n = 0; n < 54; n++)
{
int ra = rand() % 3;
adjust1:
ra = rand() % 3;
if (ra == 0)
{
if (times1 == 18)//如果一个人发满了18次,进行调整
goto adjust1;
player1[times1] = poker[n];
times1++;
}
else if (ra == 1)
{
if (times2 == 18)
goto adjust1;
player2[times2] = poker[n];
times2++;
}
else
{
if (times3 == 18)
goto adjust1;
player3[times3] = poker[n];
times3++;
}
}
}