NO.13【婳骨】の循环小测试

本文详细介绍了C语言中的for、while、do while三种循环结构的语法、区别及执行顺序,探讨了它们在实际开发中的适用场景。同时,解释了break和continue在循环控制中的作用,以及如何在嵌套循环中使用break来跳出循环。
摘要由CSDN通过智能技术生成

题目

原题

作答

1、简述一下for; while; do while;的语法

1.1 for(i=0; i<3; i++){printf(“Hi!\n”);}printf(“嘿!”);
i=0是初始化部分;i<3是循环判断条件部分(当满足此条件时才进入执行for循环中的语句);i++是执行完循环体语句后的操作
1.2 while (表达式){语句块;}
当表达式为真,则执行下面的语句;语句执行完之后再判断表达式是否为真,如果为真,再次执行下面的语句;
然后再判断表达式是否为真……就这样一直循环下去,直到表达式为假,跳出循环。这个就是 while 的执行顺序。
如:while(1){}则为死循环,如无exit或break会一直执行下去
1.3 do-while循环的一般形式为:do{语句块;}while(表达式);
do-while循环与while循环的不同在于:它会先执行“语句块”,然后再判断表达式是否为真,
如果为真则继续循环;如果为假,则终止循环。
因此,do-while 循环至少要执行一次“语句块”。

2、它们有什么区别, 条件和代码块的执行顺序分别是怎样的

结构不同、适用条件不同
执行顺序:
for 赋初值->判断->若满足条件(若不满足条件则直接不进行后续操作)->执行代码块->for()第二个;后的语句->再次判断->若满足则再次执行->再次执行for()第二个;后的语句->……直至不满足条件退出for循环
while 对while(表达式)内的表达式进行判断->若为真(非0)->执行语句块直至不满足表达式或break结束循环或exit退出
do while执行do后语句块直至不满足表达式或break结束循环或exit退出

3、实际开发中, 这三种循环分别适用哪种情况

当知道循环多少次的时候用FOR,当在某个条件达到之前需要一直循环的时候用while、如必须至少执行一次则用do while

4、break和continue有什么作用

4.1.break
用break语句可以使流程跳出switch语句体,也可以用break语句在循环结构终止本层循环体,从而提前结束本层循环。
使用说明:
(1)只能在循环体内和switch语句体内使用break;
(2)当break出现在循环体中的switch语句体内时,起作用只是跳出该switch语句体,并不能终止循环体的执行。若想强行终止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件则跳出本层循环体。
4.2.continue
continue语句的作用是跳过本次循环体中余下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为仅结束本次循环。
注意:continue语句并没有使整个循环终止。

5、怎么使用break跳出嵌套循环

break语句只能跳出一层语句,使用break跳出嵌套循环的话,需要先使用break跳出内层循环再再次使用break一层层跳出循环。

代码

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:4996)

void In(double* a);

int  main()
{
	double x = 0;		//用于循环终止条件内的变量
	int choice;	//选项
	int choice1;	//退出选项
	system("title 【婳骨】の循环小测试");
	while (1)
	{
		int i = 0;	//循环条件中的变量
		printf("欢迎来到【婳骨】の循环小测试\n");
		printf("请输入想要检验的循环\n1、for循环\n2、while循环\n3、do while循环\n");
		choice = getch();
		switch (choice)
		{
		case '1':
			printf("设置为for (i = 0; i < x; i++) “Hi!”在循环内,“嘿!”在循环外,则请输入x的值:\n");
			In(&x);
			for (i = 0; i < x; i++)
			{
				printf("Hi!\n");
			}
			printf("嘿!\n");
			break;
		case '2':
			printf("设置为while(i < x)i初值为0,每次循环执行完后i++\nwhile循环中的语句为“大威天龙!”外为“淦!”则请输入x的值:\n");
			In(&x);
			while (i < x)
			{
				printf("大威天龙!");
				i++;
			}
			printf("\n淦!\n");
			break;
		case '3':
			printf("设置为do(打印“哈”,i++)while(i < x)i初值为0,每次循环执行完后\ndo while循环外为“嗝~”则请输入x的值:\n");
			In(&x);
			do
			{
				printf("哈");
				i++;
			} while (i < x);
			printf("\n嗝~\n");
			break;
		default:
			printf("输入的不对啦!!!\n");
		}
		printf("要不要退出呀~\n退出请输入0,继续请输入其余任意键\n");
		choice1 = getch();
		if (choice1 == '0')
		{
			printf("退出成功!感谢使用\n");
			exit(0);
		}
		system("cls");
	}
	system("pause");
	return 0;
}
void In(double* a)	//对输入数据进行判断
{
	do
	{
		if (scanf_s("%lf", a) == 1)
		{
			break;
		}
		char choice;
		while ((choice = getchar()) != '\n' && choice != EOF);
		printf("输入的不是数字!\n");
	} while (scanf_s("%lf", a) != 1);
}

部分运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值