C#语句——循环语句(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();
轉載于:https://www.cnblogs.com/yf1019091807/p/5748586.html
總結
以上是生活随笔為你收集整理的C#语句——循环语句(for循环与for循环嵌套)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 只要你想学,分分钟钟用H5教会你玩转魔方
- 下一篇: c#事件的应用