1
2
3
| while(循環條件) {
循環體
}
|
範例:向控制台輸出100遍,下次考試我一定要細心
1
2
3
4
5
6
7
8
9
10
| //向控制台輸出100遍,下次考試我一定要細心
//循環體:Console.WriteLine("下次考試我一定要細心");
//循環條件:輸出次數小於100
int i = 0; //定義一個變數,來記錄循環的次數
while (i < 100)
{
Console.WriteLine("下次考試我一定要細心");
i++; //每循環一次,自身加1
}
|
範例:求1-100和
1
2
3
4
5
6
7
8
9
10
11
12
| //求1-100和
//循環體: 累加的過程
//循環條件:i <= 100
int i = 1;
int sum = 0;
while (i <= 100)
{
sum += i;
i++;
}
Console.WriteLine(sum);
Console.ReadKey();
|
範例:求1-100偶數和
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| //求1-100偶數和
//循環體: 累加的過程
//循環條件:i <= 100
int i = 1;
int sum = 0;
while (i <= 100)
{
if (i % 2 == 0) { //若是求奇數和 i%2 !=0
sum += i;
}
i++;
}
Console.WriteLine(sum);
Console.ReadKey();
|
若是求奇數和,判斷改成:if (i % 2 != 0)
範例:要求用戶輸入帳號/密碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| //要求用戶輸入帳號/密碼
//循環體:提示用戶輸入帳號/密碼、接收帳號/密碼、判斷是否登入成功
//循環條件:帳號密碼錯誤
string userName = "";
string userPwd = "";
while (userName!="admin" || userPwd!="8888")
{
Console.WriteLine("請輸入帳號");
userName = Console.ReadLine()!;
Console.WriteLine("請輸入密號");
userPwd = Console.ReadLine()!;
}
Console.WriteLine("登入成功");
Console.ReadKey();
|
範例:輸入班級人數,然後依次輸入學生成績,計算班級學生平均成績和總成績
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| //輸入班級人數,然後依次輸入學生成績,計算班級學生平均成績和總成績
//循環體:提示輸入學員成績、接收、並轉換成整數類型,累加到總成績中。
//循環條件:循環次數<=班級人數
Console.WriteLine("請輸入班級人數");
int count = Convert.ToInt32(Console.ReadLine());
int i = 1; //宣告一個變數,用來記錄迴圈的次數
int sum = 0; //用來存放總成績
while (i <= count)
{
Console.WriteLine($"請輸入第{i}學生成績");
int score = Convert.ToInt32(Console.ReadLine());
sum += score; //把每一個學生的成績累加到總成績中
i++; //每循環一次,自身加1
}
Console.WriteLine($"{count}個人班級的總成績: {sum},平均: {sum/count}");
Console.ReadKey();
|
範例:2006年培養學生8000人,每年增長25%,請問按些增長速度,到哪一年培訓學員人數將達到20萬人?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| //2006年培養學生8000人,每年增長25%
//請問按些增長速度,到哪一年培訓學員人數將達到20萬人?
//循環體:人數每年增長25%
//循環條件:人數>=20萬
double people = 80000;
int year = 2006;
while (people<=200000) {
people *= 1.25;
year++;
}
Console.WriteLine($"到第{year}年學員人數將達到20萬人");
Console.ReadKey();
|
範例:要求用戶只能輸入yes或者no
提示用戶輸入yes或者no
要求:只能輸入yes或者no,只要不是yes或者no,就要求用戶一直重新輸入
1
2
3
4
5
6
7
8
9
| //提示用戶輸入yes或者no
//要求:只能輸入yes或者no,只要不是yes或者no,就要求用戶一直重新輸入
string input = ""; //yes
while (input != "yes" && input != "no")
{
Console.WriteLine("請輸入yes或者no");
input = Console.ReadLine()!;
}
|
範例:提示用戶輸入帳號和密碼,錯誤,就重新輸入,最多3次
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| /*
提示用戶輸入帳號和密碼,要求用戶名為admin,密碼為888888
只要帳號或是密碼錯誤,就重新輸入
但是最多只能輸入3次
循環體:提示用戶輸入帳號和密碼,判斷帳號和密碼
循環條件:次數<=3
*/
string username = "";
string password = "";
int count = 3;
int i = 0;
while (i < count && (username != "admin" || password != "888888"))
{
Console.WriteLine("請輸入帳號");
username = Console.ReadLine()!;
Console.WriteLine("請輸入密碼");
password = Console.ReadLine()!;
i++;
}
|
範例:寫兩個循環
寫兩個循環
第一個循環提示用戶A輸入用戶名,要求A的用戶名不能為空,
只要為空,就要求A一直重新輸入
第二個循環提示用戶B輸入用戶名,要求B的用戶名不能跟A的用戶名相同,並且不能為空,
只要為空,並且跟A的用戶名相同,就一直提示B重新輸入用戶名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| //寫兩個循環
//第一個循環提示用戶A輸入用戶名,要求A的用戶名不能為空,只要為空,就要求A一直重新輸入
//循環體: 提示用戶A輸入用戶名、接收、判斷
//循環條件:用戶名為空
string usernameA = "";
while (usernameA == "")
{
Console.WriteLine("請輸入用戶名,不能為空");
usernameA = Console.ReadLine();
}
//第二個循環提示用戶B輸入用戶名,要求B的用戶名不能跟A的用戶名相同,並且不能為空
//只要為空,並且跟A的用戶名相同,就一直提示B重新輸入用戶名
//循環體: 提示B重新輸入用戶名、接收、判斷
//循環條件:不能跟A的用戶名相同、不能為空
Console.WriteLine("請輸入用戶名,不能與A相同,不能為空");
string usernameB = "";
while (usernameB == "" || usernameB == usernameA)
{
if (usernameB == "")
{
Console.WriteLine("請輸入用戶名,不能為空");
usernameB = Console.ReadLine();
} else if (usernameB == usernameA)
{
Console.WriteLine("請輸入用戶名,不能與A相同");
usernameB = Console.ReadLine();
}
}
Console.ReadKey();
|
練習:不斷要求用戶輸入一個數字,輸出這個數字的兩倍,當用戶輸入q結束程式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| //不斷要求用戶輸入一個數字,輸出這個數字的兩倍,當用戶輸入q結束程式
//循環體:提示用戶輸入一個數字、接收、轉換、輸出2倍
//循環條件:輸入不是q
string input = "";
while (input != "q")
{
Console.WriteLine("請輸一個數字,我們將輸出這個數字的2倍"); //提示
input = Console.ReadLine(); //接收
if (input == "q")
{
Console.WriteLine("輸入的是q,程式退出");
break;
}
try
{
int num = Convert.ToInt32(input); //轉換
Console.WriteLine($"你輸入數字的兩倍是:{num * 2}"); //輸出2倍
} catch
{
Console.WriteLine("輸入不是數字,請重新輸入");
}
}
|
練習:不斷輸入數字,當輸入end就結束,並輸出最大值
不斷要求用戶輸入一個數字(正整數),當用戶輸入end的時候結束,顯示剛才輸入數字中的最大值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| //循環體:輸入一個數字、接收、轉換int、比大小
//循環條件:輸入不是end
string input = "";
int max = 0;
while (input != "end")
{
Console.WriteLine("請輸入一個數字(正整數)"); //提示
input = Console.ReadLine(); //接收
if (input != "end")
{
try
{
int num = Convert.ToInt32(input); //轉換int
max = max > num ? max : num; //最大值: 比大小
} catch
{
Console.WriteLine("你輸入的不是數字,請重新輸入");
}
} else //end
{
Console.WriteLine(max);
}
}
|