zoukankan      html  css  js  c++  java
  • 3.09课·········for循环

    for循环:反复执行某段代码。
    for循环四要素:初始条件,循环条件,循环体,状态改变。
    for(初始条件;循环条件;状态改变)
    {
    循环体
    }

    若初始条件满足循环条件,则进入循环体,执行完循环体,跳回到状态改变,再判断是否满足循环条件,若满足,再进入循环体,直到不满足循环条件,则停止for循环。
    break ——中断循环,跳出循环
    continue——停止本次循环,

    for (int a = 1/*初始条件*/; a <= 20/*循环条件*/; a++/*状态改变*/)
                {
                    if (a == 7)
                    {
                        continue;//结束本次循环,继续下次循环
                    }
                    Console.WriteLine("你好!");
    
                    if (a == 10)
                    {
                        break;//跳出for循环
                    }
                }
                Console.ReadLine();//打印了9个“你好”

    1.输入一个整数,计算从1加到这个数的结果

    Console.Write("请输入一个正整数:");
                int a = int.Parse(Console.ReadLine());
                int sum = 0;//0加任何数都不会变化
                for (int i = 0; i <= a; i++)
                {
                    sum += i;//sum=sum+1
                }
                Console.WriteLine(sum);
                Console.ReadLine();

    2.输入一个正整数n,求1-n的阶乘

    Console.Write("请输入一个正整数:");
                int a = int.Parse(Console.ReadLine());
                int b = 1;//1乘以任何数都不变
                for (int i = 1; i <= a; i++)
                {
                    b *= i;//b=b*i
                }
                Console.WriteLine(b);
                Console.ReadLine();

    3.输入一个整数,求1!+2!+···+n!

                Console.Write("请输入一个整数:");
                int n = int.Parse(Console.ReadLine());
                int sum = 0;
                int sum1 = 1;
                for (int a = 1; a <= n; a++)
                {
                    sum1 *= a;//1~n的阶乘
                    sum += sum1;//1~n的阶乘之和                
                }
                Console.Write(sum);
                Console.ReadLine();

    用for嵌套也可以:

     Console.Write("请输入一个整数:");
                int n = int.Parse(Console.ReadLine());
                int sum = 0;
                for (int i = 1; i <= n; i++)
                {
                    int sum1 = 1;
                    for (int j = 1; j <= i; j++)
                    {
                        sum1 *= j;
    
                    }
                    sum += sum1;
    
                }
                Console.WriteLine(sum);
    
                Console.ReadLine();

    4.:找出100以内与7有关的数并打印
    (1).从1找到100
    (2).找出与7有关的数
    个位数是7 a%10==7
    十位数是7 a/10 ==7
    能被7整除 a%7 ==0

                int s = 0;//标记变量
                for (int a = 1; a <= 100; a++)
                {
                    if (a % 7 == 0 /*7的倍数*/|| a / 10 == 7/*十位数是7*/ || a % 10 == 7/*个位数是7*/)
                    {
                        s++;//满足条件就算一个
                        Console.WriteLine(a);
                    }
                }
                Console.WriteLine("总共" + s);//s为满足条件的个数
                Console.ReadLine();

    5.//一个游戏,前20关是每一关自身的分数,
    //21-30关每一关是10分
    //31-40关,每一关是20分
    //41-49关,每一关是30分
    //50关,是100分
    //输入你现在闯到的关卡数,求你现在拥有的分数
    两种做法:if嵌套for for嵌套if

    第一种方法:if嵌套for

     Console.Write("请输入关卡数:");
                int s = int.Parse(Console.ReadLine());
                int sum = 0;
                if (s >= 1 && s <= 50)
                {
                    if (s <= 20)//小于20关
                    {
                        for (int i = 1; i <= s; i++)
                        {
                            sum += i;
                        }
                    }
                    else if (s <= 30)//21~30关
                    {
                        for (int i = 1; i <= 20; i++)//前20关的总分
                        {
                            sum += i;
                        }
                        for (int i = 21; i <= s; i++)
                        {
                            sum += 10;//sum = sum + 10,每一关加10分
                        }
                    }
                    else if (s <= 40)//31~40关
                    {
                        for (int i = 1; i <= 20; i++)
                        {
                            sum += i;
                        }
                        for (int i = 21; i <= 30; i++)
                        {
                            sum += 10;
                        }//前30关总分
                        for (int i = 31; i <= s; i++)
                        {
                            sum += 20;//每一关加20分
                        }
                    }
                    else if (s <= 49)//41~49关
                    {
                        for (int i = 1; i <= 20; i++)
                        {
                            sum += i;
                        }
                        for (int i = 21; i <= 30; i++)
                        {
                            sum += 10;
                        }
                        for (int i = 31; i <= 40; i++)
                        {
                            sum += 20;
                        }
                        for (int i = 41; i <= s; i++)
                        {
                            sum += 30;//每一关加30分
                        }
                    }
                    else//s=50
                    {
                        for (int i = 1; i <= 20; i++)
                        {
                            sum += i;
                        }
                        for (int i = 21; i <= 30; i++)
                        {
                            sum += 10;
                        }
                        for (int i = 31; i <= 40; i++)
                        {
                            sum += 20;
                        }
                        for (int i = 41; i <= 49; i++)
                        {
                            sum += 30;
                        }                    
                        sum += 100;                    
                    }
                }
                else
                {
                    Console.WriteLine("输入有误!");
                }
                Console.WriteLine("您的总分是:" + sum);
                Console.ReadLine();

    第二种方法:for嵌套if//更简便

     Console.Write("请输入关卡数:");
                int s = int.Parse(Console.ReadLine());
                int sum = 0;
                if (s >= 1 && s <= 50)
                {
                    for (int i = 1; i <= s; i++)
                    {
                        if (i >= 1 && i <= 20)//1~20关
                        {
                            sum += i;
                        }
                        else if (i >= 21 && i <= 30)//21~30关
                        {
                            sum += 10;
                        }
                        else if (i >= 31 && i <= 40)//31~40关
                        {
                            sum += 20;
                        }
                        else if (i >= 41 && i <= 49)//41~49关
                        {
                            sum += 30;
                        }
                        else//50关
                        {
                            sum += 100;
                        }
                    }
                }
                else
                {
                    Console.WriteLine("您的输入有误!");
                }
                Console.WriteLine("您的总分是:" + sum);
                Console.ReadLine(); 

    3.有一对幼兔,幼兔1个月后长成小兔,小兔1个月后长成成兔并生下一对幼兔,问几年后有多少对兔子,幼兔、小兔、成兔对数分别是多少。成兔每月生下一对幼兔。

    成兔对数

    0

    0

    1

    1

    2

    3

    5

    小兔对数

    0

    1

    0

    1

    1

    2

    3

    幼兔对数

    1

    0

    1

    1

    2

    3

    5

    月份

    1

    2

    3

    4

    5

    6

    7

    总对数

    1

    1

    2

    3

    5

    8

    13

    根据上表可以得到结论:

    本月的成兔=上月的小兔+上月的成兔。

    本月的小兔=上月的小兔。

    本月的幼兔=本月的成兔。

     Console.Write("请输入月份:");
                int yue = int.Parse(Console.ReadLine());
                int ct = 0, xt = 0, yt = 0, zt = 0;
    
                for (int i = 1; i <= yue; i++)
                {
                    if (i == 1)//一月份的时候直接赋值所有兔子的个数
                    {
                        ct = 0;
                        xt = 0;
                        yt = 1;
                        zt = 1;
                    }
                    else
                    {
                        ct = xt + ct;//每月成兔等于上月小兔加上月成兔
                        xt = yt;//每月小兔等于上月幼兔
                        yt = ct;//每月幼兔等于上月成兔
                    }
                    zt = ct + xt + yt;//总兔对数
                }
                Console.WriteLine(yue + "个月后成兔对数为:" + ct);
                Console.WriteLine(yue + "个月后小兔对数为:" + xt);
                Console.WriteLine(yue + "个月后幼兔对数为:" + yt);
                Console.WriteLine(yue + "个月后总兔对数为:" + zt);
                Console.ReadLine();
  • 相关阅读:
    阿里云https证书Apache配置
    srvany.exe读取配置文件问题
    outlook检查姓名快捷键
    PHP ftp获取目录内容为空
    php 导出csv表格文件
    lnmp 多站点配置负载均衡
    rabbitmq集群方案
    如何让docker以daemon方式运行/bin/bash
    [mutt] Configure mutt to receive email via IMAP and send via SMTP
    linux邮件客户端mutt日志文件,发不出邮件
  • 原文地址:https://www.cnblogs.com/xinghun/p/5260373.html
Copyright © 2011-2022 走看看