1.分支

1.1 if语句

0为假(表达式为假),语句不执行 非零为真(表达式成立),语句执行

例如:50>3返回1;13>20返回0

1.1.1 else问题

  • if…else语句中,else后面不能直接跟括号
int main()
{
	int a = 0;
	scanf("%d", &a);
	if (a > 0)
	{
		if (a % 2 == 0)
			printf("%d是偶数", a);
		else
			printf("%d是奇数", a);
	}
	else if (a <= 0)
		printf("%d不是整数", a);
	return 0;
}

其中代码

if (a % 2 == 0)
			printf("%d是偶数", a);
		else
			printf("%d是奇数", a);

嵌套在if语句中,构成嵌套的if语句。

  • 悬空else问题

else总是跟最接近的if匹配

注:多个关系运算符不宜连用,常量放在左边不容易错 错误示范:i<e<o

走了if就不走else if 如果有多个if ,就会都走一遍

1.1.2 逻辑操作符

逻辑操作符

代表含义

!(逻辑反运算符)

改变真假

&&(与运算符)

并且

1.1.3 短路

左边的表达式满足逻辑运算符的条件,就不再对右边的表达式求值

1.2 switch(表达式)

用于判断条件有多个结果的情况; 表达式必须是整形表达式;不可以是float或者是double类型 case后的值必须是整形常量表达式

输入任意一个值,计算除3后的余数

int main()
{
	int a = 0;
	scanf("%d", &a);
	switch (a%3)
	{
	case 0:
		printf("整数");
		break;
	case 1:
		printf("余数是1");
		break;
	case 2:
		printf("余数是2");
		break;
	}
	return 0;
}

注:case和后面的数字之间需要有空格,每个case语句中的代码执行完成后需要加上break,才能跳出循环。 case 是入口,需要用break停下来

1.2.1 switch中的default

int main()
{
	int a = 0;
	scanf("%d", &a);
	switch (a)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日");
	case 6:
	case 7:
		printf("周末");
	default:
		printf("输入错误");

	}
	return 0;
}

default的作用就是switch语句里所有的case都不成立时所要执行的语句。 default是用在switch语句中,提示输入错误

2.循环

2.1 while循环

输入正整数,逆序打印整数的每一位

int main()
{
	int a = 0;
	scanf("%d", &a);
	while (a !=0)
	{
		printf("%d ", a % 10);
		a=a / 10;
	}
	return 0;
}

2.2 for循环

分支和循环(详解—if语句,switch语句,while循环,for循环,还有break和continue语句,goto语句)_运算符

for循环打印1~10

int main()
{
	int a = 0;
	for (a = 1; a <= 10; a++)
	{
		printf("%d ", a);
	}
	return 0;
}

计算1到100之间的3的倍数的数字之和

int main()
{
	int a = 0;
	int sum = 0;
	for (a = 1; a <= 100; a++)
	{
		if (a % 3 == 0)
			sum += a;
	}
	printf("sum=%d\n", sum);
	return 0;
}

结果:

分支和循环(详解—if语句,switch语句,while循环,for循环,还有break和continue语句,goto语句)_运算符_02

3.break和continue语句

break是终止循环,跳出一层循环(只能跳一层) continue是跳过本次循环的代码

注意:vs中调试是F10

4.练习

从100到200之间找到素数

int main()
{
	int a = 0;
	for (a = 100; a <= 200; a++)
	{
		int tmp = 1;
		int i=0;
		for (i = 2; i < a; i++)
		{
			if (a % i == 0)
			{
				tmp = 0;
				break;
			}
			
		}
		if (tmp == 1)
			printf("%d ", a);
	}
	return 0;
}

分支和循环(详解—if语句,switch语句,while循环,for循环,还有break和continue语句,goto语句)_if语句_03

5.goto语句

可以实现在同一个函数内跳到设置好的标号处

goto error