C语言基础 循环结构

1.循环的优势

循环结构的运用可以极大地简化程序的编写,使代码更加简洁和高效。通过合理利用循环,可以避免重复编写大量相似的代码,提高程序的可读性和可维护性。它们在处理数据、执行复杂计算、控制程序流程等方面都发挥着至关重要的作用,是 C 语言编程中不可或缺的重要组成部分,

2.C语言中的循环

1. for 循环。

它包含了初始化表达式、条件表达式和迭代表达式这三个关键部分。通过初始化表达式设定起始状态,条件表达式控制循环是否继续进行,而迭代表达式则用于在每次循环后进行相应的调整。这种结构非常清晰且灵活,适用于各种需要按特定次数或规律进行循环的场景。例如,可以用它来遍历数组、执行固定次数的操作等。

主要形式:for(初始化表达;条件表达式;迭代表达式)

                        {循环语句;

                                }

例如:

        for(int i=1;i<=10;i++)

        {

        printf("*");

        }

这段代码含义即将 * 符号打印十遍。
 
2.while循环

while 循环则是先判断条件,只有条件满足时才会执行循环体中的语句。它常常用于在事先不确定循环次数,但明确循环条件的情况下。比如等待某个特定条件达成后停止循环。

形式:while(条件表达式){

        循环体语句;}

例子:

int i=1

        while(i<=10)

        {

        printf("*");

        i++;

        }

同样也是将*符号打印十次

3.do-while语句

do-while 循环与 while 循环有一定相似性,但区别在于它会先执行一次循环体,然后再判断条件。这就确保了无论条件最初是否满足,循环体至少会被执行一次。这种循环结构在某些特定场景下非常有用,比如确保某些初始化操作能够先行执行。

形式:

        do{

        循环体

        }

        while(条件表达式)

      例子:

                int i=1

                do{

                printf("*");}

                while(i<=10)

同样也是将*符号打印十遍

3.循环的嵌套与并列

1.循环的嵌套

在 C 语言中,循环的嵌套是指一个循环结构内部包含另一个循环结构。
 
当进行循环嵌套时,可以实现更复杂的重复操作模式。比如在一个外层的 for 循环中,嵌套一个内层的 for 循环,这样就可以按照外层循环指定的次数,每次外层循环执行时,内层循环又会按照其设定的次数完整执行一遍。这种嵌套结构可以用来处理多维数组的遍历、生成复杂的图案或执行具有层次结构的任务等。通过巧妙地设计内外层循环的条件和迭代方式,可以实现各种多样化的功能。

例子:

for(int i=1;i<=10;i++)
{
    for(int j=1;j<=10;j++)
    {
        printf("*");
    }
    printf("\n");

}

这段代码即是打印一个10*10的正方形
2.循环的并列

循环的并列则是指多个循环结构在同一层次上相互独立地运行。它们各自按照自己的条件和迭代方式进行循环操作,彼此之间没有直接的关联和影响。并列的循环可以同时处理不同的任务或数据集合,它们并行地执行,各自完成特定的操作。
例子:

for(int i=1;i<=10;i++)
{
    printf("*");
}
printf("\n");
for(int i=1;i<=10;i++)
{
    printf("*");
}

 这段代码即是打印一个10*2的矩形

3.嵌套与并列
循环嵌套和并列的运用需要根据具体的编程需求来合理选择和设计。在实际编程中,通过灵活运用这些方式,可以构建出高效、复杂且功能强大的程序逻辑,以满足不同场景下的各种要求。合理地利用循环的嵌套与并列能够使程序更加高效地处理复杂的任务和数据结构,展现出 C 语言强大的编程能力和灵活性。

例子:

#include <stdio.h>
#include <stdlib.h>
int main()
{
	printf("请输入行数\n");
	int n;
	scanf("%d",&n);
	if(n%2==0||n<1)
	{
		printf("输入错误\n");
		exit(1);
	}
	int i,j,k;
	for(i=1;i<=n/2+1;i++)//先打印n/2+1行
	{	
		for(j=1;j<=n/2+1-i;j++)//打印前置空格
		{
			printf(" ");
		}
		printf("*");//打印第一行的*
		if(i==1)//避免第一行后续的二次打印*
		{
			printf("\n");
		}
		if(i>=2)
		{
			for(k=1;k<=(2*i-3);k++)//打印中间空格
			{
				printf(" ");
			}
			printf("*\n");//打印后置*
		}

	}
	for(i=n/2;i>=1;i--)//打印后n/2行
	{
		for(j=n/2;j>=i;j--)//打印后n/2行的前置空格
		{
			printf(" ");
		}
		printf("*");//打印前置*
		if(i==1)//避免最后一行的二次打印*
		{
			printf("\n");
		}
		if(i>1)
		{
			for(k=1;k<=2*i-3;k++)//打印后n/2行的中间空格
			{
				printf(" ");
			}
			printf("*\n");//打印后置*
		}
	}
	return 0;
}

这段代码即为打印一个空心菱形。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值