本文介绍: 在本章节我们学会关于分支结构程序循环使用,并且去用他们显示我们想要的图形,还会了解到continue用法

目录

二重循环

用break语句强制结束循环

显示图形

 绘制等腰直角三角形

多重循环

continue语句


将循环语句的循环体作为循环语句,就可以进行二重、三重循环。这样的循环称为多重循环。

我们先来了解二重循环

二重循环

在之前我们学习到的循环中的程序比较简单,在一个循环中还可以嵌套一个循环(俄罗斯套娃),根据所嵌套循环的多少,由二重循环、三重循环……统称为多重循环

我们用二重循环来编写一个显示9*9乘法表程序

#include<stdio.h>

int main()
{
	int i, j;
	
	for(i = 1; i <= 9; i++)
	{
		for(j =1 ; j <= 9; j++)
		{
			printf("%3d", i * j);
			//putchar('n');大家putchar放入内循环中可以试着猜猜它的显示形式
		}
		putchar('n');
	}
	return 0;
}

 那么它是怎么来显示的呢?让我们来看看吧!

 外侧的for语句:是变量i从1——9依次递增,对应乘法表中的第一行第二行……第九行,即纵方向的循环。

内侧的for语句:是变量j从1——9依次递增,对应乘法表中的第一列、第二列……第九列,

即横方向的循环。

当i=1时:执行j从1——9递增的操作,按3位(%3d)的宽度输出1*j。

当i=2时:执行j从1——9递增的操作,按3位(%3d)的宽度输出2*j。

当i=3时:执行j从1——9递增的操作,按3位(%3d)的宽度输出3*j。

………………………………………………………………………………

当i=9时:执行j从1——9递增的操作,按3位(%3d)的宽度输出9*j。

 在各循环中,内循环中的j从1——9分别执行了九次,内循环结束后,输出换行符上面代码注释中的问题),为前进下一行准备

break语句强制结束循环

让我们对上面程序进行改写,显示i*j<=40整数

for(i = 1; i <= 9; i++)
	{
		for(j =1 ; j <= 9; j++)
		{
			int seki = i * j;
			if(seki &gt; 40)
			{
				break;
			}
			printf("%3d", i * j);
		}
		putchar('n');
	}

 在本程序使用break语句在跳出循环时,只会跳出内侧循环,并不会跳出外侧循环。

显示图形

我们用*来显示出一个长方形

#include<stdio.h&gt;

int main()
{
	int i, j;
	int height, width;
	
	printf("请输入长方形的高:");        scanf("%d", &amp;height);
	printf("请输入长方形的宽:");        scanf("%d", &amp;width);

	for(i = 1; i <= height; i++ )
	{
		for(j = 1; j <= width; j++)
		{
			putchar('*');
		}
		putchar('n');
	}
	return 0;
}

我们继续来解释

共计height个行,每行显示有width个*,这样就显示出了一个长方形。

 绘制等腰直角三角形

我们先来使用二重循环编写绘制直角在左下方的程序(边长的相等对应“*”的多少

#include<stdio.h&gt;

int main()
{
	int i, j, len;
	
	puts("生成直角在左下方的等腰直角三角形");
	
	printf("请输入短边:");
	scanf("%d", &amp;len);
	
	for(i = 1; i <= len; i++)
	{
		for(j =1 ; j <= i; j++)
		{
			putchar('*');
		}
		putchar('n');
	}
	return 0;
	
}

但是当我们想要显示直角在右下方的等腰直角三角形呢?怎么把*从右到左先显示呢?我们只需要输出空格就可以满足需求了,但在用putchar输出空格时也需得作为一个循环中的语句,这样就需要使用到三重循环了。

for(i = 1; i <= len; i++)
	{
		for(j = 1; j <= len - i; j++)
		{
			putchar(' ');//要把空格作为一个字符常量,所要记得输入一个空格哦!
		}
		for(j =1 ; j <= i; j++)
		{
			putchar('*');
		}
		putchar('n');
	}

多重循环

前面我们都是使用for语句来进行嵌套,当然我们也可以使用do语句、while语句来进行嵌套实现多重循环

输入一个整数,显示整数个*

#include<stdio.h&gt;

int main()
{
	int retry;
	
	do
	{
		int i, no;
		do
		{
			printf("请输入一个整数:");
			scanf("%d", &amp;no);
			if(no <= 0)
			{
				puts("a请不要输入负数和0");
			}
		}while(no <= 0);
		
		for(i = 1; i <= no; i++)
		{
			putchar('*');
		}
		putchar('n');
		
		printf("是否继续输出?【YES---0/No---9】:");
		scanf("%d", &amp;retry);
	}while(retry == 0);
	
	return 0;
}

continue语句


int main()
{
	int i, j;
	
	for(i = 1; i <= 9; i++)
	{
		for(j =1 ; j <= 9; j++)
		{
			int seki = i * j;
			if(seki % 10 == 4 || seki / 10 == 4)
			{
			putchar(' ');
					continue;
			}
		
			printf("%3d", i * j);
		}
		putchar('n');
	}
	return 0;
}

大家可以试试把continue去掉后再次运行程序结果会有何不同

continue 语句的作用是跳过循环体中剩余的语句而强制进入一次循环。continue 语句只用在 while、for 循环中,常与 if 条件语句一起使用,判断条件是否成立。在理解中可以与break语句相反去理解

就是说,当遇到满足条件时,不会被中断,跳过去继续执行一步;而break语句,在条件满足时就立即停止执行。

 最近大家大学确定了放假时间了吗?放假早的同学们祝你们有个好假期,放假晚的同学不要太伤心了,希望咱们开学晚啊!

  在下方投票来公布你的放假时间吧!!!

原文地址:https://blog.csdn.net/W06164932/article/details/134791768

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_44082.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注