主要內(nèi)容

一個小練習(xí)
不斷要求用戶輸入一個數(shù)字(假定用戶輸入的都是正整數(shù)),當(dāng)用戶輸入end的時候顯示剛才輸入的數(shù)字中的最大值
static void Main(string[] args)
{
//循環(huán)體:提示用戶輸入一個數(shù)字 接收 轉(zhuǎn)換成int類型 不停的比較大小
//循環(huán)條件:輸入的不能是end
string input = "";
int max = 0;
while (input != "end")
{
Console.WriteLine("請輸入一個數(shù)字,輸入end我們將顯示你輸入的最大值");
input = Console.ReadLine();//數(shù)字 end 亂七八糟
if (input != "end")
{
try
{
int number = Convert.ToInt32(input);
//讓用戶輸入的每個數(shù)字都跟我假定的最大值比較,只要比我假定的最大值要大,
//就把當(dāng)前輸入的這個數(shù)字賦值給我的最大值
if (number > max)
{
max = number;
}
}
catch
{
Console.WriteLine("輸入的字符串不能夠轉(zhuǎn)換成數(shù)字,請重新輸入");
}
}
else//==end
{
Console.WriteLine("您剛才輸?shù)臄?shù)字中的最大值是{0}",max);
}
}
Console.ReadKey();
}

程序調(diào)試
為什么需要調(diào)試
1)、寫完一段程序后,想看一下這段程序的執(zhí)行過程。
2)、當(dāng)你寫完這段程序后,發(fā)現(xiàn),程序并沒有按照你想象的樣子去執(zhí)行。調(diào)試方法
1)、F11逐語句調(diào)試(單步調(diào)試)
2)、F10逐過程調(diào)試
3)、斷點調(diào)試


這里輸入你要見識的變量名稱

多次點擊F11 后i 的值已經(jīng)在代碼執(zhí)行過程中發(fā)生了變化

添加斷點(點擊行號左邊的灰色區(qū)域添加斷點 雙擊可取消斷點)
添加完斷點之后直接點擊執(zhí)行 程序會在執(zhí)行到該行代碼的時候停住
(關(guān)于行號的添加 參考 .Net基礎(chǔ)01)

for循環(huán)
語法:
for(表達(dá)式1;表達(dá)式2;表達(dá)式3)
{
循環(huán)體;
}
表達(dá)式1 一般為聲明循環(huán)變量,記錄循環(huán)的次數(shù)(int i=0;)
表達(dá)式2 一般為循環(huán)條件(i<10)
表達(dá)式3 一般為改變循環(huán)條件的代碼,使循環(huán)條件終有一天不再成立(i++)。
執(zhí)行過程:程序首先執(zhí)行表達(dá)式1,聲明了一個循環(huán)變量用來記錄循環(huán)的次數(shù),
然后執(zhí)行表達(dá)式2,判斷循環(huán)條件是否成立,如果表達(dá)式2返回的結(jié)果為true,
則執(zhí)行循環(huán)體。當(dāng)執(zhí)行完循環(huán)體后,執(zhí)行表達(dá)式3,然后執(zhí)行表達(dá)式2繼續(xù)判斷循環(huán)條件是否成立,
如果成立則繼續(xù)執(zhí)行循環(huán)體,如果不成立,則跳出for循環(huán)。
static void Main(string[] args)
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine("我吃了{(lán)0}口飯", i);
}
}

- 小練習(xí)1
找出100-999間的水仙花數(shù)?
水仙花數(shù)指的就是 這個百位數(shù)字的
百位的立方+十位的立方+個位的立方==當(dāng)前這個百位數(shù)字
static void Main(string[] args)
{
for (int i = 100; i <= 999; i++)
{
//153
//百位:153/100
//十位:153%100/10
//個位:153%10
int bai = i / 100;
int shi = i % 100 / 10;
int ge = i % 10;
if (bai * bai * bai + shi * shi * shi + ge * ge * ge == i)
{
Console.WriteLine("水仙花數(shù)有{0}", i);
}
}
Console.ReadKey();
}

- 小練習(xí)2 (for循環(huán)嵌套)
static void Main(string[] args)
{
//當(dāng)遇到某個事情要做一遍,而另外一個事情要做N遍的時候
//for循環(huán)的嵌套
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
Console.WriteLine("Hello World i循環(huán)了{(lán)0}次,j循環(huán)了{(lán)1}次",i,j);
}
}
Console.ReadKey();
}

從輸出結(jié)果可以看出for循環(huán)嵌套時在滿足最外層循環(huán)條件后,將執(zhí)行完內(nèi)部for循環(huán),之后再判斷是否滿足外層循環(huán)條件。
int.TryParse
類型轉(zhuǎn)換
之前用的 Convert可以類型轉(zhuǎn)換 Parse 也可以類型轉(zhuǎn)換。
之前用的 Convert實際上也是調(diào)用了Parse,和Convert 一樣Parse 也有int.Parse() double.Parse()等同樣的轉(zhuǎn)換類型。
兩者在轉(zhuǎn)換失敗時都是會拋異常,Parse的效率比Convert要高一丟丟,不過基本可以忽略。
static void Main(string[] args)
{
int number = 100;
//參數(shù) 返回值
bool b = int.TryParse("123abc", out number);
Console.WriteLine(b);
Console.WriteLine(number);
//方法 或者 函數(shù)?
Console.ReadKey();
}
當(dāng)Parse 在類型轉(zhuǎn)換失敗時,并不會拋異常而是會返回一個 bool值,false 代表轉(zhuǎn)換失敗,true 代表轉(zhuǎn)化成功。
continue
在循環(huán)中表示結(jié)束本次循環(huán)
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("Hello World");
// break;
continue;
Console.WriteLine("Hello World");
Console.WriteLine("Hello World");
}
Console.ReadKey();
}

可以發(fā)現(xiàn),程序一直在執(zhí)行,并沒有停止。
- 小練習(xí)
用 while continue實現(xiàn)計算1到100(含)之間的除了能被7整除之外所有整數(shù)的和。
static void Main(string[] args)
{
int sum = 0;
int i = 1;
while (i <= 100)
{
if (i % 7 == 0)
{
i++;
continue;
}
sum += i;
i++;
}
Console.WriteLine(sum);
Console.ReadKey();
}
三元表達(dá)式
語法:
表達(dá)式1?表達(dá)式2:表達(dá)式3;
表達(dá)式1一般為一個關(guān)系表達(dá)式。
如果表達(dá)式1的值為true,那么表達(dá)式2的值就是整個三元表達(dá)式的值。
如果表達(dá)式1的值為false,那么表達(dá)式3的值就是整個三元表達(dá)式的值。
注意:表達(dá)式2的結(jié)果類型必須跟表達(dá)式3的結(jié)果類型一致,并且也要跟整個三元表達(dá)式的結(jié)果類型一致。
static void Main(string[] args)
{
//計算兩個數(shù)字的大小 求出最大的
Console.WriteLine("請輸入第一個數(shù)字");
int n1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("請輸入第二個數(shù)字");
int n2 = Convert.ToInt32(Console.ReadLine());
// 語法:
//表達(dá)式1?表達(dá)式2 :表達(dá)式3
int max = n1 > n2 ? n1 : n2;
Console.WriteLine(max);
Console.ReadKey();
}

隨機(jī)數(shù)
1、創(chuàng)建一個對象
2、用對象調(diào)用方法
static void Main(string[] args)
{
//產(chǎn)生隨機(jī)數(shù)
//1、創(chuàng)建能夠產(chǎn)生隨機(jī)數(shù)的對象
//Random r = new Random();
//while (true)
//{
// //2、讓產(chǎn)生隨機(jī)數(shù)的這個對象調(diào)用方法來產(chǎn)生隨機(jī)數(shù)
// int rNumber = r.Next(1, 11);
// Console.WriteLine(rNumber);
// Console.ReadKey();
//}
//輸入名字隨機(jī)顯示這個人上輩是什么樣的人
//思路:
//1、創(chuàng)建能夠產(chǎn)生隨機(jī)數(shù)的對象
//2、產(chǎn)生隨機(jī)數(shù) (1,7)
Random r = new Random();
while (true)
{
int rNumber = r.Next(1, 7);
Console.WriteLine("請輸入一個姓名");
string name = Console.ReadLine();
switch (rNumber)
{
case 1:
Console.WriteLine("{0}上輩子是養(yǎng)豬的", name);
break;
case 2:
Console.WriteLine("{0}上輩子是流氓的", name);
break;
case 3:
Console.WriteLine("{0}上輩子就是小混混", name);
break;
case 4:
Console.WriteLine("{0}上輩子是大漢奸", name);
break;
case 5:
Console.WriteLine("{0}上輩子是拉皮條的", name);
break;
case 6:
Console.WriteLine("{0}上輩子是救苦救難的活菩薩", name);
break;
}
Console.ReadKey();
}

往期回顧
