分支语句

分支语句:一种描述判断后进行选择的过程结构

1. if语句

格式: if(条件表达式){语句;}   条件表达式:关系,逻辑,赋值,算法
if(表达式1){语句1;}else{ 语句2;}

如果表达式1满足条件,执行语句1,不会执行语句2,如果表达式1不满足条件呢,不会执行表达式1,而只会执行表达式2。

	if (age>18)`在这里插入代码片`
	{
		printf("你是老男人\n");
	}
	if (age<18)
	{
		printf("你是老司机\n");
	}
if嵌套

if(表达式1)
{
if(表达式2)
{
表达式3;
}
else
{
表达式4;
}
}
else
{
if(表达式5)
{
表达式6;
}
}

if (x > y)
	{
	//x 和z比较
	//printf("%d最大", x > z ? x : z);
		if (x > z)
		{
			printf("x最大");
		}
		else
		{
			printf("z最大");
		}
	}
	else
	{
	//y和z比较
	//printf("%d最大", y > z ? x : z);
		if (y > z)
		{
			printf("y最大");
		}
		else
		{
			printf("z最大");
		}
	}

如果表达式1满足,继续判断表达式2,如果表达式2满足执行表达式3,如果表达式2不满足执行表达式4。
如果表达式1不满足,直接继续判断表达式5,如果表达式5满足执行表达式6,否则都不执行。

if(条件判断1){语句1}else if(条件判断2){ 语句2}else {语句3};

如果条件判断1满足条件,执行语句1,语句2和3不会执行,如果条件1不满足,继续判断条件2,如果条件2满足执行语句2后结束,如果两个条件都不满足,执行语句3.注意,如果第一个条件满足,第二个条件也满足的情况下,只执行语句1。

	int score = 0;
	printf("请输入成绩\n");
	scanf("%d", &score);

	if (90 <= score)
	{
		printf("A");
	}
	else if (80 <= score)
	{
		printf("B");
	}
	else if (70 <= score)
	{
		printf("C");
	}
	else if (60 <= score)
	{
		printf("D");
	}
	else
	{
		printf("E");
	}

2.开关语句

switch(表达式)
{
case 常量1:语句块1;break;
case 常量2:语句块2;break;
。。。
case 常量n:语句块n;break;
default: 语句块m;break;
}

	printf("******学生管理系统******\n");
	printf("***  1.添加学员       **\n");
	printf("***  2.修改学员信息   **\n");
	printf("***  3.删除学员       **\n");
	printf("************************\n");

	int temp = 0;
	scanf("%d", &temp);

	switch (temp)
	{
	case 1: 
		printf("添加学员成功\n"); 
		break;
	case 2: 
		printf("修改学员成功\n"); 
		break;
	case 3: 
		printf("删除学员成功\n");
		break;
	default:
		printf("输入错误\n\n");
		break;
	}

3.循环语句

while循环

基本形式: while(条件表达式){循环体}
执行顺序: 首先判断表达式是否满足,如果不满足跳过循环体直接执行大括号后面的代码,如果表达式满足条件,执行循环体,遇到循环的括号后,继续进行表达式判断,如果满足会继续执行循环体,直到条件表达式不满足。
死循环:条件一直满足不断的执行,没有结束的时候。
while(1); while(1){xxxxx}
一般情况下while小括号后面不可以加分号

int main1()
{
	int x = 0;
	
	while (x <= 100)
	{
		printf("x = %d\t", x);
		x++;
	}
	getchar();
	return 0;
}
do…while()循环

语法规则:do{循环体}while(条件表达式);
执行规则:首先执行循环体,执行完成后判断条件表达式是否满足条件,如果满足继续执行循环体否则结束循环。
注意点:在while后一定要加分号;
区别:while是先判断后执行,有可能一次都不会执行循环体,如果循环次数由循环体决定,一般用while循环
do…while先执行一次,在判断条件是否满足,至少会执行一次。
如果知道循环次数的情况下,一般用for循环,for循环用的最多,while其次,最后是do。。。while
三者可以嵌套使用,每个循环都可以用其他循环替代

break----适用于所有循环中,遇到break退出当前循环。
continue–适用于所有循环中,遇到continue结束当次循环。

	do
	{
		printf("请输入1到100的数字\n");
		scanf("%d", &x);
		if (x < 0 || x>100)
		{
			printf("输入的数字条件不满足\n");
		}
		else if (x > temp)
		{
			printf("猜大了\n");
		}
		else if (x < temp)
		{
			printf("猜小了\n");
		}
		else
		{
			//printf("恭喜半仙 你猜对了\n");
			//break;
			printf("恭喜半仙 你猜对了\n");//不会执行
		}
		if (10 == x)
			continue;

		printf("xxxxxxx\n");


	} while (1);
for循环

格式: for(表达式1;表达式2;表达式3){循环体4}
表达式1:循环变量初始化值。
表达式2:条件判断
表达式3:循环变量的变化
执行顺序:首先执行表达式1,对变量进行初始化
然后判断表达式2是不是满足条件
条件满足执行循环体4,循环体完成后执行表达式3
1–>2–>4–>3
死循环: for(;1;){} for(;?{}

循环嵌套:
for(1;2;3){for(5;6;7){8} } //for(5;6;7){8}
执行顺序1 2 (5 6 8 7 6 8 7) 3 2 (4) 3

	//公鸡 5块钱一只 母鸡3块钱一只,小鸡一块钱3只,现在100块钱要买100只鸡,问鸡各有多少只。
	//所有都是公鸡 20    所有都是母鸡 33 小鸡300
	for (int i = 0; i <= 20; i++)//公鸡
	{
		for (int j = 0; j < 34; j++)
		{
			for (int k = 0; k < 300; k++)
			{
				if (i + j + k == 100 && i * 15 + 9 * j + k == 300)//i*5+3*j+k/3 == 100
				{
					printf("小鸡%d,母鸡%d,公鸡%d\n", k, j, i);
				}
			}

		}
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值