c语言基础之分支

序言

该文章会细致细心的把C语言基础语法讲解清楚,小白也可以看明白

话不多说 下面是我们今天的重点

1分支语句                 2循环语句
if switch            while      for     do while   

今天讲两个分支 三个循环

1if循环

if的基本语法

首先看if的基本语法形式

1 if(表达式)
语句;


2 if(表达式)
语句;
else
语句2;


3 if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;

上面三种是if的语法结构,但是值得注意的是,第三个表达式中

可以一直使用 else if(表达式)

直到else

文字也许看不懂直接举例,我们分三个例子来举例

int main()
{
int a=10;
if(a%2==0)
printf("a是偶数");
else
printf("a是奇数");
return 0;
}

这里是第二种语法,如果a模上一个2为0(其实就是就是余数为0)这件事是真的,那么执行下面的语句 打印  a是偶数 否则 打印a是奇数,这个是不是很简单

int main()
{

if(1)
printf("1 ");
if(2)
printf("2 ");
if(0)
printf("3 ");
if(-1)
printf("4 ");
return 0;
}

我们再来看看这个代码看看结果,首先还是分析

给大家解释什么是,语句为真,如果一个表达式的返回值转化为一个数时

非0为真 0为假

我们直接写答案了 1 2 4

很明显只有if(0)不输出

我们再看代码

int main()
{
	int age = 100;
	if (age < 18)
		printf("未成年\n");
	else if (age >= 18 && age < 28)
		printf("青年\n");
	else if (age >= 28 && age < 50)
		printf("壮年\n");
	else if (age >= 50 && age < 90)
		printf("老年\n");
	else
		printf("nb\n");
	return 0;
}

这个代码就是刚刚,我们所说的第三个if语法结构

其实else if 是可以一直使用的

而上面的代码就是一个很好自动分辨年龄段的程序

上述都是单个if的作用

接下来我们看看 if的嵌套使用

if的嵌套使用

同样顾名思义 就是if的执行语句还是一个if嘛

简单大家写一个三数取中 的代码吧 应该可以理解

int main()
{
	int a,b,c;
	scanf("%d%d%d", &a, &b, &c);
	if (a > b)
	{
		if (b > c)
			printf("%d为中间数", b);
		//此时 a>b并且b<=c,只需要判断a c大小
		else if(a>c)
			printf("%d为中间数", c);
		//
		else//此时 a > b并且b <= c, a<=c 此时a在中间
			printf("%d为中间数", a);
	}
	//a<=b
	else
	{ //a<=b<c
		if (b < c)
			printf("%d为中间数", b);
		//a<=b>=c 只需判断a c 
		else if (a > c)
			printf("%d为中间数", c);
		else//c<=a<=b
			printf("%d为中间数", a);
	}
	return 0;
}

大家好好看看注释,如果能够把这个代码看懂 if也就没有问题了

//   这个东西是注释呀 不会再代码中起效果的

不过if 分支还是有一些细节的

1 if 会和靠的最近的else结合

2else 不能单独出现

3在写if 的语句时 最好加入{}  防止两个语句在不同的作用域中,会出现问题

2switch多分支语句

switch的基本语句

我们在对条件分类讨论时,如果分类非常多,就需要非常多的

if判断,此时代码就会像会像山一样 很麻烦,那我们就引进了switch

其实switch语句的讲解真的不如上代码来的快一些

上代码

int main()
{
	int a = 1;
	int b = 2;
	int c = 3;
     //判断条件
	switch (a)
	{
	case 0: a += 10;
	case 1: b += 10;
	case 2: c += 10;
	case 3: a *= 10;
	default:c += 20;
	}
printf("%d %d %d",a,b,c);
return 0;
}

大家猜的到结果吗

不过在此之前还是要告诉大家switch语句是从上到下执行代码的

先判断,若switch(a) 括号里的变量的值等于这个case b     (b可以是一个字符 一个数字 或者表达式)  那么从case b 执行一直往下,如果遇到break则直接结束该语句

但是如果说没有任何一个值等于b 那么程序直接执行default语句

switch()中的a是判断switch语句的执行条件

a一开始为1 然后我们的switch中有个case1:

所以1==a 从case1: 开始执行代码,一直把default 后的语句执行完

这是在没有break;语句的情况

大家还是直接看看答案吧

OK我相信大家还是有很多疑惑

这个default是什么呢

大家有没有想过如果说a的值不满足任何情况,那么他该执行的是什么

是不是就是直接跳过前面的所有情况,直接执行最后的default语句

我们再来改编加个break

这个代码在我们要执行的语句 case 1:(语句)加上了break;

直接使代码其他下面的代码不执行了

所以break;在switch的作用是是使该分支直接结束

最后再来一个代码吧

来个直接执行default的

看a==100 不等于case 中的任何值 直接执行default

switch的嵌套使用

其实大家看了if的嵌套使用就能通过对比猜出switch()的的嵌套使用

我们通过题目来说明

int main()
{
	int n = 1, m = 2;
	switch (n)
	{
	case 1:m++;
	case 2:n++;
	case 3:
		switch (n)
		{
		case 1:n++;
		case 2:m++, n++;   //结果是m=5,n=3
			break;         //break上若没有加{}只会与最上面的switch结合并结束此分支
			               //注意switch的运行顺序是从上之下,只要没有break就会一直运行所有分支
		}                  //switch和if一样也可以嵌套使用
		                   //default指的是开始的switch(n)里的n不是1,2,3,4 时所运行的语句
	case 4:m++;
		break;
	default:
		break;
	}
	printf("m=%d\n", m);
	printf("n=%d\n",n);
	return 0;
}

解释全在注释上了,大家可以看出结果的

3总结

C语言的分支语句是最简单最易入门的语法,不过还是希望大家多多实践

接下来,我会讲解一些简单的分支题目给大家

良好的开端是成功的一半,加油各位

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值