循環:可以反復執行某段代碼,直到不滿足循環條件為止。
一、循環的四要素:初始條件、循環條件、狀態改變、循環體。
1.初始條件:循環最開始的狀態。
2.循環條件:在什么條件下進行循環,不滿足此條件,則循環終止。
3.狀態改變:改變循環變量值,最終不滿足循環條件,從而停止循環。
4.循環體:要反復執行的部分。
二、語法:for語法. //還有while,do...whilte
for(初始條件;循環條件;狀態改變)
{
//循環體
}
注意:
1.for后面的小括號中,用分號隔開了三項。
2.for的小括號后面不要加分號。
3.不要寫成死循環。
例:
for(int i=1;i<=10;i++)
{
Console.WriteLine("您好");
}
三、執行過程:
1.執行初始條件
2.執行循環條件
3.循環體
4.狀態改變
5繼續第2步。
四、舉例:
1.找100以內與7相關的數。(能被7整除,個位數是7,十位數是7)
for(int i=1;i<=100;i++)
{
if (i % 7 == 0 || i % 10 == 7 || i / 10 == 7) //重點
{
Console.Write(i + "\t");
}
}
2.顯示計算機的ASCII碼:
for(int i=0;i<=125;i++)
{
Console.Write(i+"="+(char)i+"\t");
}
for循環變型:
變型一:while循環
int i = 1;//初始條件
for (; i <= 100; )
{
Console.Write(i + "\t");
i++;//狀態改變
}
相當於:
int i = 1;//初始條件
while ( i <= 100)
{
Console.Write(i + "\t");
i++;//狀態改變
}
變型二:死循環
for (; ; )
{
}
五、循環的嵌套。
for(int i=1;i<=10;i++)
{
for(int j=1;j<=20;j++)
{
Console.Write("★");
}
Console.WriteLine();
}
當外層每循環1次,里層完全循環一遍。
作業:
打印以下圖型:
1.
i與j關系 行i 列j
●●●●● 1 5
●●●●● 2 5
●●●●● 3 5
●●●●● 4 5
●●●●● 5 5
2.
●
●●
●●●
●●●●
●●●●●
for (int i = 1; i <= 5; i++)
{
for (int j = 1; j <= i; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
3.
●●●●●
●●●●
●●●
●●
●
for (int i = 1; i <= 5; i++)
{
for (int j = 1; j <= 6 - i; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
4.
□□□□● 1 4 1
□□□●● 2 3 2
□□●●● 3 2 3
□●●●● 4 1 4
●●●●● 5 0 5
for (int i = 1; i <= 5; i++)
{
for (int j = 1; j <= 5 - i; j++)
{
Console.Write(" ");
}
for (int m = 1; m <= i; m++)
{
Console.Write("*");
}
Console.WriteLine();
}
5.
□□□□●
□□□●●●
□□●●●●●
□●●●●●●●
●●●●●●●●●
for (int i = 1; i <= 5; i++)
{
for (int j = 1; j <= 5 - i; j++)
{
Console.Write(" ");
}
for (int m = 1; m <= 2 * i - 1; m++)
{
Console.Write("*");
}
Console.WriteLine();
}
習題1
與計算機猜拳
Random rand = new Random();
Console.Write("請出拳(0-石頭 1-剪刀 2-布):");
int n = rand.Next(3);
int ren = Convert.ToInt32(Console.ReadLine());
if (ren == 0)
{
if (n == 0)
{
Console.WriteLine("平局,計算機:" + n);
}
if (n == 1)
{
Console.WriteLine("恭喜您贏了,計算機:" + n);
}
if (n == 2)
{
Console.WriteLine("計算機贏,計算機:" + n);
}
}
else if (ren == 1)
{
if (n == 1)
{
Console.WriteLine("平局,計算機:" + n);
}
if (n == 2)
{
Console.WriteLine("恭喜您贏了,計算機:" + n);
}
if (n == 0)
{
Console.WriteLine("計算機贏,計算機:" + n);
}
}
else if (ren == 2)
{
if (n == 2)
{
Console.WriteLine("平局,計算機:" + n);
}
if (n == 0)
{
Console.WriteLine("恭喜您贏了,計算機:" + n);
}
if (n == 1)
{
Console.WriteLine("計算機贏,計算機:" + n);
}
}
else
{
Console.WriteLine("請按套路出牌");
}
習題2
算緣分
Console.Write("請輸入姓名1:");
string name1 = Console.ReadLine();
Console.Write("請輸入姓名2:");
string name2 = Console.ReadLine();
Random rand = new Random();
int n = rand.Next(101);
if (n >= 0 && n <= 59)
{
Console.WriteLine(name1 + name2 + "緣分不深,不宜深入交往");
}
else if (n >= 60 && n <= 80)
{
Console.WriteLine(name1 + name2 + "情深緣淺,在一起需雙方努力");
}
else
{
Console.WriteLine(name1 + name2 + "恭喜你們,是天作之合");
}