迴圈:反覆執行某段代碼。 迴圈四要素:初始條件,迴圈條件,迴圈體,狀態改變。 for(初始條件;迴圈條件;狀態改變) { 迴圈體 } break ——中斷迴圈,跳出整個迴圈 continue——停止本次迴圈,進入下次迴圈。 註:●執行步驟:初始條件——迴圈條件——迴圈體——狀態改變。 ●死迴圈:出不 ...
迴圈:反覆執行某段代碼。
迴圈四要素:初始條件,迴圈條件,迴圈體,狀態改變。
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();