流程控制_对if、switch、for、while以及do-while语句的理解

这篇文章介绍了某不知名初学者对流程控制的一些理解,大家可以拿来参考,欢迎大家在评论区留下自己的理解!请添加图片描述

流程控制是程序代码执行的顺序,三大流程控制分别为顺序、选择以及循环。

顺序结构

顺序结构也即从上到下执行每条语句的结构,每个程序的代码在整体上都是这样执行的。

选择结构:if与switch


1.if语句

在我的理解中,if语句即:
1.如果满足了xxx就xxxx。

if(表达式)
{
语句;
}

2.如果满足了xxx就xxxx,否则xxxxx。

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

3.如果满足了xxx就xxxx,(否则)如果xxx就xxxxx,(否则)如果xxx就xxxxx,(否则)如果xxx就xxxxx。

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

...

else if(表达式n)
{
语句n;
}

需要区分的是多条if语句与if语句的多分支。
前者,多条if语句,将进行多次判断,如果多个if语句都被满足那么对应的语句都将执行,即可能执行多个语句。
后者,if语句的多分支,也可能进行多次判断,但当前一个判断满足,后面的判断将不被执行,即只执行一个语句。


浅浅地举一个小例子:

#include <stdio.h>
int main()
{
	int a = 0;
	int b = 1;
	printf("a=%d,b=%d\n", a, b);
	//if条件判断语句
	//如果a>b a与b交换,否则a+1
	if (a > b)
	{
		int temp = 0;
		temp = a;
		a = b;
		b = temp;
	}
	else
	{
		a++;
	}
	printf("a=%d,b=%d\n", a, b);
	return 0;
}

2.switch语句

我觉得比起if语句,switch在语法上更容易看出它是一个分支语句,即根据程序产生或输入的某个值来执行语句。
需要注意的是:
1.switch语句判断的必须是整型表达式,我认为即表达式的结果必须为一个整型常量,也只有这样才方便进行分支判断。
2.switch语句需要利用break语句才能实现分支。实际情况是,如果不使用break语句打断,那么所有的分支将依次执行。
3.如果表达值与所有case标签的值均不符,那么将执行default语句。(default可以写在任何一个case标签可以出现的地方)。

	switch (整型表达式)
	{
	case 整型常量表达式1: 语句1;
		break;
	case 整型常量表达式2: 语句2;
		break
	case 整型常量表达式3: 语句3;
		break;
		
	...
	
	case 整型常量表达式n: 语句n;
		break
	default:默认执行语句;
		break;

感受一下switch:

#include <stdio.h>
int main()
{
	int ch = 0;
	printf("**********1.星期一**********\n");
	printf("**********2.星期二**********\n");
	printf("**********3.星期三**********\n");
	printf("**********4.星期四**********\n");
	printf("**********5.星期五**********\n");
	printf("**********6.星期六**********\n");
	printf("**********7.星期日**********\n");
	printf("**********0.退出  **********\n");
	scanf("%d", &ch);
	switch (ch)
	{
	default:printf("输入错误,请重新输入");
		break;
	case 1:printf("Monday");
		break;
	case 2:printf("Tuesday");
		break;
	case 3:printf("Wednesday");
		break;
	case 4:printf("Thursday");
		break;
	case 5:printf("Friday");
		break;
	case 6:printf("Saturday");
		break;
	case 7:printf("Sunday");
		break;
	}
	return 0;
}

循环结构:for、while、do-while


1.for循环

感觉for循环是非常常用的,比起while循环比较方便吧。

#include <stdio.h>

int main()
{
	int i=0;
	for(初始化循环控制变量;结束条件;更新循环控制变量)
	{
		语句;
	}
	return 0;
}

如果在for循环内初始化循环控制变量,它的作用域只在for循环内。


利用for循环输入和输出:

#include <stdio.h>

int main()
{
	int arr[10] = { 0 };
	int i=0;
	for (int i = 0; i < 10; i++)//i的作用域在for循环内
	{
		scanf("%d", &arr[i]);
	}
	for (i = 0; i < 10; i++)//此处的i与上一个for循环的i是不同的
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

2.while循环

当xxxx时执行代码。

#include <stdio.h>

int main()
{
	while(条件)
	{
		代码块;	
	}
	return 0;
}

当条件为真时,执行代码块,条件可以是表达式
用while循环输入数字并倒序输出:

#include <stdio.h>

int main()
{
	int i = 0;
	int arr[10] = { 0 };
	while ((scanf("%d", &arr[i]) == 1))
	{
		i++;
	}
	while (i != 0)
	{
		i--;
		printf("%d ", arr[i]);
	}
	return 0;
}

3.do-while循环

当xxxxx时执行代码块。

do-while语句与while语句不同在于,它的代码块被执行一次后才会进行条件表达式的第一次判断。

#include <stdio.h>

int main()
{
	do
	{
		代码块;
	} while (条件表达式);
		return 0;
}

举个不恰当的例子;do-while是先打你一顿再问你知不知道错,不知道错继续打…while循环是先问你知道知不知道错,不知道错就打,打完再问一遍…


用代码来感受一下do-while循环:

#include <stdio.h>

i#include <stdio.h>

int main()
{
	int ch = 0;
	do
	{
		printf("1.菜单项\n");
		printf("2.菜单项\n");
		printf("3.菜单项\n");
		printf("4.菜单项\n");
		printf("5.菜单项\n");
		printf("6.菜单项\n");
		printf("0.退出\n");
		printf("请选择:\n");
		scanf("%d", &ch);
	} while (ch);            //配合switch语句可以达到多次输出菜单的目的
		return 0;
}

上面代码利用do-while循环实现了菜单的多次输出,可以配合switch语句实现多次选择

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 19
    评论
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梅八格

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值