C语言——分支循环

一.三种结构

1.基本分类

顺序结构:最简单的结构

选择结构:if、switch

循环结构:for、do while、while

2.1 if语句

(1)单if语句:

if(条件表达式)
{
    执行语句;
}

(2)if-else语句:

if(条件表达式)
{
    执行语句1;
}
else
{
    执行语句2;
}

//if里的条件表达式为真,则运行执行语句1,else失效,不运行执行语句2;
//反之if里的条件表达式为假,则跳过执行语句1,直接执行else部分
        

(3)if-else-if语句:

if(条件表达式1)
{
    执行的语句1;
}
else if(条件表达式2)
{
    执行的语句2;
}
//可以添加多个else-if语句,相当多选题增加选项
else
{
    执行的语句3;
}
//条件表达式1为真,则执行语句1,后面的else-if和else不看
//条件表达式1为假,则判断条件表达式2,为真则执行语句2,后面的忽略
//条件表达式1和2都为假,则执行语句3

2.2 switch语句

switch(整形表达式)//switch后的表达式类型只能为整型和枚举型
{
    case 整型常量表达式1:
          语句1;
    case 整型常量表达式2:
          语句2;
    case 整型常量表达式3:
          语句4;
    default:
           语句5;
}
#include <stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day
	);
	switch (day)
	{
	case 1:
		printf("星期一\n");
		break;
	case 2:
		printf("星期二\n");
		break;
	case 3:
		printf("星期三\n");
		break;
	case 4:
		printf("星期四\n");
		break;
	case 5:
		printf("星期五\n");
		break;
	case 6:
		printf("星期六\n");
		break;
	case 7:
		printf("星期天\n");
		break;
	default:
		printf("查询错误\n");
		break;
	}
	return 0;
}

如果switch后的整型表达式的值找不到与case标签的值相匹配,则可以添加一条default子句,

这个default子句后的语句就会执行

执行的语句后都会放一条break语句,避免发生以下情况

#include <stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day
	);
	switch (day)
	{
	case 1:
		printf("星期一\n");
		
	case 2:
		printf("星期二\n");
		
	case 3:
		printf("星期三\n");
		break;
	case 4:
		printf("星期四\n");
		break;
	case 5:
		printf("星期五\n");
		break;
	case 6:
		printf("星期六\n");
		break;
	case 7:
		printf("星期天\n");
		break;
	default:
		printf("查询错误\n");
		break;
	}
	return 0;
}

//没有break语句,就会继续执行下面case后的语句,直到遇到break语句

练习:

#include <stdio.h>
int main() {
	int x = 3;
	int y = 3;
	switch (x % 2) {
	case 1:
		switch (y)
		{
		case 0:
			printf("first");
		case 1:
			printf("second");
			break;
		default: printf("hello");
		}
	case 2:
		printf("third");
	}
	return 0;
}
//打印结果为hellothird

3.1 while

while(条件表达式)
{
    执行的语句;
}
//若条件表达式为真,则执行下面的语句,反之不执行

3.2 do while

do
{
    循环语句;
}while(表达式);

//do while循环至少执行一次,第二次再判断while括号中表达式的真假,为真则继续执行do后的循环语句

3.3 for

for(表达式1;表达式2;表达式3)
{
    循环语句;
}
//表达式1为初始化部分,用于初始循环变量
//表达式2为条件判断部分,用于判断循环什么时候终止
//表达式3为调整部分,用于循环条件的调整

//执行顺序:表达式1->表达式2->循环语句->表达式3

练习:

#include <stdio.h>

int main()
{
	int i = 0;
	for (i = 0; i<10; i++)
	{
		if (i = 5)
			printf("%d ", i);
	}
	return 0;
}

//打印结果为死循环的5,i=5是赋值,不是判断,每次循环都给i赋值5

二.九种控制语句

分支语句(条件判断语句):if语句、switch语句

循环执行语句:do while语句、while语句、for语句

转向语句:goto语句、continue语句、return语句、break语句

博主本次重点讲break和continue语句

break语句:break语句用于跳出一个循环体或者结束一个循环

continue语句:用于跳出本次循环,Continue后面的语句不会再执行,立即进行下一次循环条件的判断

举例:

#inlcude <stdio.h>
int main()
{
	for (int i = 1; i <= 10; i++)
	{
		if (i == 2)
			continue;
		printf("%d ", i);
	}
}


int main()
{
	for (int i = 1; i <= 10; i++)
	{
		if (i == 2)
			break;
		printf("%d ", i);
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值