循環:反復執行某段代碼。
循環四要素:初始條件,循環條件,循環體,狀態改變。
for(初始條件;循環條件;狀態改變)
{
循環體
}
給出初始條件,先判斷是否滿足循環條件,如果不滿足條件則跳過for語句,如果滿足則進入for語句執行,for語句內的代碼執行完畢後,將按照狀態改變,改變變量,然後判斷是否否和循環條件,符合則繼續執行for語句內的代碼,直到變量i不符合循環條件則終止循環,或者碰到break命令,直接跳出當前的for循環。
break ——中斷循環,跳出循環
continue——停止本次循環,進入下次循環
循環(for)和分支語句(if else等)可以相互嵌套
死循環:
for (; ; )
{
Console.WriteLine("Hello");
}
注意:程序中不允許出現死循環!
應用
循環語比較繁瑣,多加練習
1.輸入一個整數,計算從1加到這個數的結果
Console.Write("請輸入一個正整數:");
int a = int.Parse(Console.ReadLine());
int sum = 0;
for (int i = 1; i <= a; i++)
{
sum += i;//sum=sum+i;
}
Console.WriteLine(sum);
Console.ReadLine();
2.輸入一個正整數,求階乘
Console.Write("請輸入一個正整數:");
int a = int.Parse(Console.ReadLine());
int sum = 1;
for (int i = 1; i <= a; i++)
{
sum *= i;//sum=sum*i;
}
Console.WriteLine(sum);
Console.ReadLine();
3.輸入一個正整數,求階乘的和1!+2!+...+n!
Console.Write("請輸入一個正整數:");
int a = int.Parse(Console.ReadLine());
int sum = 1;
int sum1 = 0;
for (int i = 1; i <= a; i++)
{
sum *= i;//sum=sum*i;
if (i == 4)//不想要4的
{
continue;//終止本次循環,繼續下次循環
}
sum1 += sum;
}
Console.WriteLine(sum1);
Console.ReadLine();
4.一個游戲,前20關是每一關自身的分數,
21-30關每一關是10分
31-40關,每一關是20分
41-49關,每一關是30分
50關,是100分
輸入你現在闖到的關卡數,求你現在擁有的分數
兩種做法:if嵌套for for嵌套if
(1)Console.Write("請輸入您現在闖到的關卡數:");
int guan = int.Parse(Console.ReadLine());
if (guan >= 1 && guan <= 50)
{
int sum = 0;
if (guan <= 20)
{
for (int i = 1; i <= guan; i++)
{
sum += i;
}
}
else if (guan <= 30)
{
for (int i = 1; i <= 20; i++)
{
sum += i;
}
for (int i = 21; i <= guan; i++)
{
sum += 10;
}
}
else if (guan <= 40)
{
for (int i = 1; i <= 20; i++)
{
sum += i;
}
for (int i = 21; i <= 30; i++)
{
sum += 10;
}
for (int i = 31; i <= guan; i++)
{
sum += 20;
}
}
else if (guan <= 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 <= guan; i++)
{
sum += 30;
}
}
else//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;
}
Console.WriteLine(sum);
}
else
{
Console.WriteLine("輸入有誤!");
}
Console.ReadLine();
(2)Console.Write("請輸入您現在闖到的關卡數:");
int guan = int.Parse(Console.ReadLine());
if (guan <= 50 && guan >= 1)
{
int sum = 0;
for (int i = 1; i <= guan; i++)
{
if (i <= 20)
{
sum += i;
}
else if (i <= 30)
{
sum += 10;
}
else if (i <= 40)
{
sum += 20;
}
else if (i <= 49)
{
sum += 30;
}
else
{
sum += 100;
}
}
Console.WriteLine(sum);
}
else
{
Console.WriteLine("輸入有誤!");
}
Console.ReadLine();
5.找出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 % 7 == 0 || i % 10 == 7 || i / 10 == 7)
{
Console.Write(i+"\t");
}
}
Console.ReadLine();