第二节:分支,循环(知识梳理)

一、分类

       ①分支语句: 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++;
		}
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值