C语言之分支循环

if,else if和 else构成的分支结构

首先介绍C语言的分支结构

分支结构是C语言之中的重要结构,一般由if,else if和else构成,比如以下代码:

#include<stdio.h>
int main()
{
	int a = 0, b = 0;
	scanf("%d%d",&a, &b);
	if (a > b)
	{
		printf("haha\n");
	}
	else if (a < b)
	{
		printf("hehe\n");
	}
	else
	{
		printf("heihei\n");
	}
	return 0;

现在我们在VS的调试窗口里面输入几组数据,如下图:

我们发现,我们输入的数字大小能决定代码的运行结果。那么,这段代码是怎么运行的呢?

关键来了!首先,我们要了解if怎么使用。if(表达式) 表达式; 或者 if(表达式){表达式1;表达式2;}但是这样子写还是太抽象了。所以接下来,对以上代码增加注释,使得便于阅读:

#include<stdio.h>
int main()
{
	int a = 0, b = 0;//创建并初始化变量a,b.
	scanf("%d%d",&a, &b);//输入函数,需要引用头文件stdio.h
	if (a > b)//使用方式是if(表达式) 表达式或者 if(表达式){表达式1;表达式2,...表达式n;}
	{//此处的表达式是 a > b ,如果表达式成立,则表达式返回数值 1,如果不成立,返回0.
	 //在C语言中,若把表达式写成1或其他非零数值,则为真;若把表达式写成 0 ,则为假
		printf("haha\n");
	}
	else if (a < b)
	{//此处用到了else if,和只用if相比,当if和else if连用时,只要一个if被成功执行,其他if会统统不干,这个东西后面再讲。
		printf("hehe\n");
	}
	else
	{//当if或else if和else连用时, 若if都不能成功执行,则执行else控制的语句。
		printf("heihei\n");
	}
	return 0;

下面开始介绍else if的具体使用方法

C语言中,在if和else if连用时,若有 if 和多个 else if 语句所接条件表达式同时成立,则从上开始执行第一个满足条件的if或else if语句,而且只执行第一个满足条件的if或else if语句。

关于多重if嵌套

这是一个很有用且很烦的东西,举一个简单的例子加以说明:

#include<stdio.h>
int main()
{
	int a = 0;
	scanf("%d", &a);
	if (a - 1 >= 0)
		if (a + 3 > 10)
			if (a - 1 < 10)
				printf("测试结果1");
			else
				printf("测试结果2");
		else
			printf("测试结果3");
	else 
		printf("测试结果4");
	return 0;
}

VS编译器直接为我们展示了多个if嵌套中if和else的关系,从这个例子中,我们可以发现,若要寻找多个if嵌套之中的else与哪个if相关,就从最内层的if开始找else,这样可以很方便的理清各个if和else之间的关系。在搞清了这些代码的运行规律后,我们也可以往里面塞很多else if语句。tips:这代码很喜欢出现在某些教科书上。

循环语句介绍

通常,C语言之中的循环可以使用这三种:for(;;);while();do{}while()。其中,对于循环次数明确的案例,通常使用for;对于不明确的,通常使用while或者do{}while。循环,就是字面意思。下面,先介绍for循环:

#include<stdio.h>
int main()
{
//for的用法是  for(初始化部分;判断部分;操作部分)语句或者  for(初始化部分;判断部分;操作部分){语句1;语句2;...语句n;}
//下面举例说明:
	for (int i = 1; i <= 10; i++)//先创建整型变量i并赋值为1,再判断i是否小于等于10,若判断成功,则执行{}内语句,执行完{}内语句后,i增加1,然后继续判断i是否小于等于10,如此循环到i大于10
	{                            //若判断失败,不进行循环。
		                         //若直接给判断部分写成非0数据,判断部分永远为真,for循环会一直进行直到找到能跳出循环的语句。
		printf("%d ", i);
	}
	return 0;
}

运行结果如下图:

介绍完for,继续介绍while和do{}while

#include<stdio.h>
int main()
{
	int i = 1;//while用法是 while(表达式) 表达式; 或者 while(表达式){表达式1;表达式2;...表达式n;}例子如下
	while (i <= 10)
	{
		printf("%d  ", i);
		i++;
	}
	return 0;
}

运行结果是

还有一个do while没介绍,下面开始介绍do while循环结构。

#include<stdio.h>
int main()
{
	int i = 10;
		do{
			printf("一只写代码的菜鸟");
		} while (i < 0);
	return 0;
}

执行结果是

我们发现,我们写的条件表达式 i < 0的判断应该失败了,但是 printf这个函数还是被成功调用了,从上述例子可以看出,do while会先执行一次循环部分的内容,再进行判断。

上述语句的共同点是不加大括号{}只会管他它自己后面的第一条表达式。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值