2020年1月21日C语言循环学习

人走茶凉 提交于 2020-01-22 01:34:47

2020年1月21日C语言学习

一、continue

跳过本次循环,继续执行下次循环

例题:循环输入五个玩家的年龄,统计年龄为负的录入次数(录入正确,则跳过;错误则计数器加一)

int age;
int i;
int count = 0;//计数器初值为0
for(i = 0; i < 5; i++)
{
    printf("请输入玩家年龄:");
    scanf("%d",&age);
    if(age >= 0)//正确
    {
        continue;//跳过正确的情况
    }
    else
    {
        count++;
    }
}
printf("输入错误%d次!\n",count);

例题:求1-100之间的偶数和

#include <stdio.h>
int main()
{
    int i;
    int sum = 0;
    for(i = 0; i < 100; i++)//i+=2
    {
        if(i % 2 != 0)//奇数情况
            continue;//跳过奇数
            sum += i;
    }
    printf("输入偶数和:%d",sum);
    return 0;
}

二、continue与break对比

break可用于switch结构和循环结构中;continue只能用于循环结构中

break终止某个循环,程序跳转到循环块外的下一条语句;continue跳出本次循环,进入下一次循环

三、循环结构总结

相同点:多次重复执行一个或多个任务是考虑使用循环来解决问题

循环次数确定的情况下,通常选用for循环;

循环次数不确定的情况下,通常选用while和do-while循环

四、嵌套循环之打印星号图形

在这里插入图片描述

#include <stdio.h>
void main()
{
    int i,j;
    for (i = 0; i < 4; i++)//外层循环控制行(行数、换行)
    {
        //上三角空格行号与列号的关系
        for(j = 0; j <= 2 - i; j++)
        {
            printf(" ");
        }
        //内层循环控制列(列数、列的符号)
        for(j = 0; j <= i * 2; j++)
        {
           //挖空原理,判断什么时候打印星号,什么时候打印空格
           // if(i ==0 || i == 3 || j ==0 || j ==2 * i)
           //   printf("*");
           //else
           //  printf(" ");
            printf("*");   //'A'+i...'A'+j
        }
        printf("\n");
    }
    for(i = 4; i < 7; i++)
    {
        //上三角空格行号与列号的关系
        for(j = 0; j <= i - 4; j++)
        {
            printf(" ");
        }
        //内层循环控制列(列数、列的符号)
        for(j = 0; j <= 12 - 2 * i; j++)
        {
            printf("*");
        }
        printf("\n");
    }
}

在这里插入图片描述

#include <stdio.h>
void main()
{
    int i,j;
    for(i = 0;i <= 4;i++)
    {
        for(j = 0; j <= 7;j++)
        {
            if(i == 0 || i == 4 || j == 0 || j == 7)
               printf("*");
            else
              printf(" ");
        }
        printf("\n");
    }
}

在这里插入图片描述

#include <stdio.h>
void main()
{
    int i,j;
    for (i = 0; i < 3; i++)//外层循环控制行(行数、换行)
    {
        for(j = 0; j <= 2 - i; j++)//上三角空格行号与列号的关系
        {
            printf(" ");
        }
        for(j = 0; j <= i * 2; j++)//内层循环控制列(列数、列的符号)
        {
            //挖空原理,判断什么时候打印星号,什么时候打印空格
            if (i == 0)
            {
                printf(" ");
            }
            else
                {
                if (i == 1 || j == 0 || j == 2 * i)
                    printf("*");
                else
                    printf(" ");
            }
        }
        printf("\n");
    }
    for(i = 3; i < 10; i++)
    {
        for(j = 0; j <= 6; j++)
        {
            if(j == 0 || j ==6)
                printf("*");
            else
                printf(" ");
        }
        printf("\n");
    }
    for(i = 9; i < 12; i++)
    {
        for(j = 0; j <= i - 9; j++)//上三角空格行号与列号的关系
        {
            printf(" ");
        }
        for(j = 0; j <= 22 - 2 * i; j++)//内层循环控制列(列数、列的符号)
        {
            if(i == 11){
                printf(" ");
            } else{
                if(i == 10 || j == 0 || j == 22 - 2 * i)
                    printf("*");
                else
                    printf(" ");
            }
        }
        printf("\n");
    }
}

在这里插入图片描述

#include <stdio.h>
void main()
{
    int i,j;
    for (i = 0; i < 3; i++)//外层循环控制行(行数、换行)
    {
        for(j = 0; j <= 1 - i; j++)//上三角空格行号与列号的关系
        {
            printf(" ");
        }
        for(j = 0; j <= i * 2; j++)//内层循环控制列(列数、列的符号)
        {
            printf("*");
        }
        printf("\n");
    }
    for(i = 3; i < 10; i++)
    {
        for(j = 0; j <= 4; j++)
        {
            if(j == 2)
                printf("*");
            else
                printf(" ");
        }
        printf("\n");
    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!