分支与循环语句

分支与循环语句


1.分支语句

分支语句分为两类:if语句、switch语句

if语句:
请添加图片描述

switch语句:
请添加图片描述


1.1 if语句

if的常见格式:if、if…else、if…else if…else

1.在if语句中,条件成立为真(非0,一般写为1),条件不成立为假(0)

2.if的匹配:if可以不与else匹配,也可以与其最近的else匹配

3.else的匹配:else是跟它离得最近得if匹配

在if条件判断相等时,把常量放在左边,变量放在右边,可以避免==写成=而不报错的问题

举例代码:

#define _CRT_SECURE_NO_WARNINGS  //vs studio没有c后缀,需要加宏定义来让其判定为c后缀
#include<stdio.h>
int main()
{
	//形式一:if
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
	{
		printf("未成年!\n");
	}

	//形式二:if..else
	int age2 = 0;
	scanf("%d", &age2);
	//if不使用{},只执行if下第一条语句,叫做悬空if、else
	if (age2 < 18)
		printf("未成年!\n");
	else
		printf("成年!\n");
	
	//形式三:if..else if...else
	int age3 = 0;
	scanf("%d", &age3);
	if (age3 < 18)
		printf("未成年!\n");
	else if (age3 > 18 && age3 < 30)
		printf("青年!\n");
	else
		printf("中老年!\n");
    
	return 0;
}

效果展示:

请添加图片描述


1.2 switch语句

switch语句格式:switch…case…default…

switch对于里面放入的值进行case匹配,从而执行下面的代码

case语句必须跟break来结束此次case,否则继续执行下面的case直到遇到break

default是当值与case没有匹配结果的时候,使用的默认匹配,可以没有

举例代码:

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
int main()
{
	printf("请输入星期几:(0-7)\n");
	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;
}

效果展示:

请添加图片描述

请添加图片描述


2.循环语句

2.1 while、for、do…while语句

循环语句分为三类:while、for、do…while

请添加图片描述

for循环里,第一个参数是初始化部分,第二个参数是条件判断部分,第三个参数是调整部分判断条件不给,就不会终止for循环,除非给终止语句

do...while();意思是无论是否满足,先执行一次代码,在判断while里条件,结尾要用;

举例代码:

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
int main()
{
	//while循环打印0-10
	int i = 0;
	while (i <= 10)
	{
		printf("%d ", i);
		i = i + 1;
	}
	printf("\n");

	//for循环打印0-10
	int n = 0;
	for (n = 0; n <= 10; ++n)
		printf("%d ", n);
	printf("\n");

	//do...while
	int a = 0;
	do 
	{
		printf("%d ", a);
		a = a + 1;
	} while (a <= 10);

}

效果展示:

请添加图片描述


2.2 while语句中的continue、break语句

continue终止本次循环,后边的代码不会再执行,直接跳转到while语句的判断部分

break用于跳出所有循环,直接终止跳出while循环

举例:

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
int main()
{
	//continue终止本次循环
	int i = 1;
	while (i <= 10)
	{
		if (5 == i)
			continue;
		printf("%d ", i);
		i = i + 1;
	}
}
/*
解释:当i=5的时候,满足if条件,执行continue终止了本次循环,后面的代码就不执行了,
此时i又为5,反复执行if语句的continue从而出现下图中的一个光标不停闪烁,没有停止运行
*/

请添加图片描述

while的特殊输出:以下代码用来输出0-9数字,跳过其他字符

#include <stdio.h>
int main()
{
    char ch = '\0';
 	while ((ch = getchar()) != EOF)
 	{
     	if (ch <0|| ch >9)
        	continue;
     	putchar(ch);
 	}
 return 0;
}
#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
int main()
{
	//break跳出本次循环
	int a = 1;
	while (a <= 10)
	{
		if (5 == a)
			break;
		printf("%d ", a);
		a = a + 1;
	}
	return 0;

}
/*
解释:当a一直加到5的时候,满足if条件,break出了while循环,
直接跳到了return语句,虽然a=5,但是没有printf不打印5
*/

请添加图片描述


扩展:goto语句

C语言中提供了可以随意滥用的 goto语句和标记跳转的标号—goto语句的存在没有什么必要,没啥用

goto就是你设定一个goto变量名,然后直接跳转到变量名哪里执行:比如下面的代码,执行到goto again时候,就跳转到again:位置又执行下面的代码

//goto的关机进程
#include <stdio.h>
int main()
{
    char input[10] = {0};
    system("shutdown -s -t 60");
again:
    printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:>");
    scanf("%s", input);
    if(0 == strcmp(input, "我是猪"))
   {
        system("shutdown -a");
   }
    else
   {
        goto again;
   }
    return 0;
}
  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

「已注销」

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

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

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

打赏作者

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

抵扣说明:

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

余额充值