C#語句2——循環語句(for循環與for循環嵌套)


循環:反復執行某段代碼。

循環四要素:初始條件,循環條件,循環體,狀態改變。

for(初始條件;循環條件;狀態改變)

{

         循環體

}

break ——中斷循環,跳出整個循環

continue——停止本次循環,進入下次循環。

注:●執行步驟:初始條件——循環條件——循環體——狀態改變。

●死循環:出不來,一直在執行

for (; ; )

{

   Console.WriteLine("你好");

}

一、for循環例題

1、找出100以內與7有關的數並打印:(1).從1找到100(2).找出與7有關的數

●個位數是7 a%10==7

●十位數是7 a/10 ==7

●能被7整除 a%7 ==0

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

            {

                if (i % 10 == 7 || i / 10 == 7 || i % 7 == 0)

                {

                    Console.Write(i+"\t");

                }

            }

            Console.ReadLine();

2、輸入一個正整數,求1~這個數的階乘

            Console.Write("請輸入一個正整數:");

            int a = int.Parse(Console.ReadLine());

            int b=1;

            for (int n = 1; n <= a; ++n)

            {

                b = b * n;

            }

            Console.WriteLine("這個數字的乘積是:"+b);

            Console.ReadLine();

3、一個游戲,前20關是每一關自身的分數,,21-30關每一關是10分,31-40關,每一關是20分,41-49關,每一關是30分,50關,是100分,輸入你現在闖到的關卡數,求你現在擁有的分數。兩種做法:if嵌套for    for嵌套if

法一:

            Console.Write("請輸入您現在闖到的關卡數:");

            int a = int.Parse(Console.ReadLine());

            int sum = 0;

            if (a >= 1 && a <= 50)

            {

                if (a <= 20)

                {

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

                    {

                        sum += i;

                    }

                }

                else if (a <= 30)//a>20&&a<=30

                {

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

                    {

                        sum += i;

                    }

                    for (int i = 21; i <= a; i++)

                    {

                        sum += 10;

                    }

                }

                else if (a <= 40)//a>30&&a<=40

                {

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

                    {

                        sum += i;

                    }

                    for (int i = 21; i <=30; i++)

                    {

                        sum += 10;

                    }

                    for (int i = 31; i <= a; i++)

                    {

                        sum += 20;

                    }

                }

                else if (a <= 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 <= a; i++)

                    {

                        sum += 30;

                    }

                }

                else//a==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();

法二:

            Console.Write("請輸入您現在闖到的關卡數:");

            int a = int.Parse(Console.ReadLine());

            int sum = 0;

            if (a >= 1 && a <= 50)

            {

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

                {

                    if (i <= 20)

                    {

                        sum += i;

                    }

                    else if (i <= 30)//i>20&&i<=30

                    {

                        sum += 10;

                    }

                    else if (i <= 40)

                    {

                        sum += 20;

                    }

                    else if (i <= 49)

                    {

                        sum += 30;

                    }

                    else

                    {

                        sum += 100;

                    }

                }

            }

            else

            {

                Console.WriteLine("輸入有誤!");

            }

            Console.WriteLine("您的分數是:"+sum);

            Console.ReadLine();

4、籃球彈起問題,籃球初始所在高度是20米。每次彈起是上一次的五分之四,輸入次數,求籃球彈起高度。

            Console.Write("請輸入次數:");

            int a = int.Parse(Console.ReadLine());

            double h = 20;

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

            {

                h = h * 4 / 5;

            }

            Console.WriteLine("經過{0}次彈起,籃球高度是:{1}",a,h);

            Console.ReadLine();

5、折紙:有一張超大的紙,可以無限次折疊,厚度為0.07毫米。問,折疊多少次可以超過珠峰的高度(8848米)。

            int ci = 0;//標記變量,標記總共運行幾次

            double h = 0.07;//8848m=8848000

            for (; ; )

            {

                ci++;

                h *= 2;//h=h*2;

                if (h > 8848000)

                {

                    break;

                }

            }

            Console.WriteLine("經過{0}次折疊,可以超過珠峰的高度。高度為:{1}米",ci,h/1000);

            Console.ReadLine();

二、for循環的嵌套例題

1、輸入一個整數,求1!+2!+...+n!

法一、

            Console.Write("請輸入一個正整數:");

            int a = int.Parse(Console.ReadLine());

            int sum = 0;

            int jie = 1;

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

            {

                jie *= i;

                sum += jie;

            }

            Console.WriteLine("結果是:" + sum);

            Console.ReadLine();

法二、嵌套

            Console.Write("請輸入一個正整數:");

            int a = int.Parse(Console.ReadLine());

            int sum = 0;

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

            {

                int jie = 1;

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

                {

                    jie *= j;

                }

                sum += jie;

            }

            Console.WriteLine("結果是:" + sum);

            Console.ReadLine();

2、九九乘法表

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

            {

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

                {

                    Console.Write("{0}*{1}={2} \t", j, i, i * j);

                }

                Console.WriteLine();

            }

            Console.ReadLine();

3、打印四個方向的三角形

●直角在左下方

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

            {

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

                {

                    Console.Write("★");

                }

                Console.WriteLine();

            }

            Console.ReadLine();

●直角在左上方

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

            {

                for (int j = 1; j <= 6 - i; j++)

                {

                    Console.Write("★");

                }

                Console.WriteLine();

            }

            Console.ReadLine();

●直角在右下方

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

            {

                for (int j = 1; j <= 5 - i; j++)

                {

                    Console.Write("  ");

                }

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

                {

                    Console.Write("★");

                }

                Console.WriteLine();

            }

            Console.ReadLine();

●直角在右上方

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

            {

                for (int j = 1; j <= i - 1; j++)

                {

                    Console.Write("  ");

                }

                for (int j = 1; j <= 6 - i; j++)

                {

                    Console.Write("★");

                }

                Console.WriteLine();

            }

            Console.ReadLine();

3、打印菱形

            Console.Write("請輸入一個數:");

            int a = int.Parse(Console.ReadLine());

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

            {

                for (int j = 1; j <= a - i; j++)

                {

                    Console.Write("  ");

                }

                for (int j = 1; j <=2*i-1; j++)

                {

                    Console.Write("★");

                }

                Console.WriteLine();

            }

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

            {

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

                {

                    Console.Write("  ");

                }

                for (int j = 1; j <= 2 *(a-i) - 1; j++)

                {

                    Console.Write("★");

                }

                Console.WriteLine();

            }

            Console.ReadLine();

4、輸入任意數,打印出對應三角形

            Console.Write("請輸入一個數:");

            int a = int.Parse(Console.ReadLine());

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

            {

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

                {

                    Console.Write("★");

                }

                Console.WriteLine();

            }

            Console.ReadLine();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM