1、程序調試
1)、寫完一段程序後,想看一下這段程序的執行過程。
2)、當你寫完這段程序後,發現,程序並無按照你想象的樣子去執行。算法
調試方法:
1)、F11逐語句調試(單步調試)
2)、F10逐過程調試(方法時候開始用)
3)、斷點調試
程序運行到斷點處,就不在往下執行dom
2、for循環
語法:
for(表達式1;表達式2;表達式3)
{
循環體;
}
表達式1通常爲聲明循環變量,記錄循環的次數(int i=0;)
表達式2通常爲循環條件(i<10)
表達式3通常爲改變循環條件的代碼,使循環條件終有一天再也不成立(i++)。
執行過程:程序首先執行表達式1,聲明瞭一個循環變量用來記錄循環的次數,
而後執行表達式2,判斷循環條件是否成立,若是表達式2返回的結果爲true,
則執行循環體。當執行完循環體後,執行表達式3,而後執行表達式2繼續判斷循環條件是否成立,
若是成立則繼續執行循環體,若是不成立,則跳出for循環。ide
for小練習
//求1-100之間的全部整數和,偶數和,奇數和
int sum = 0;
for (int i = 1; i <= 100; i++)
{
if (i % 2 != 0)
{
sum += i;
}
}
Console.WriteLine(sum);
Console.ReadKey();函數
/找出100-999間的水仙花數 //水仙花數指的是 這個百位數字 //百位的立方+十位的立方+個位的立方==當前這個百位數字 //百位:153/100 十位:153%100/10 個位:153%10 int bai = 0; int shi = 0; int ge = 0; for (int i = 100; i < 1000; i++) { bai = i / 100; shi = i % 100 / 10; ge = i % 10; if ((bai * bai * bai) + (shi * shi * shi) + (ge * ge * ge) == i) { Console.WriteLine(i); } } Console.ReadKey(); //乘法口訣表(特別注意console.writeline起到的是j循環換行的做用,j<=i是由於j循環幾回,式子就打印幾回) for (int i = 1; i <=9; i++) { for (int j = 1; j <= i; j++) { Console.Write("{0}*{1}={2}\t", i, j, i * j); } Console.WriteLine();//換行用的 } Console.ReadKey(); //讓用戶輸入一個數,給出加法式子 Console.WriteLine("請輸入一個數"); int number = Convert.ToInt32(Console.ReadLine()); for (int i = 0; i <= number; i++) { Console.WriteLine("{0}+{1}={2}", i,number-i, number); } Console.ReadKey();
3、int.TryParse
int.parse、double.parse.............(出錯拋異常)
嘗試着將一個字符串轉換成int類型。
conver調用的就是parse,因此效果是同樣的
//使用convert進行轉換,成就成了,不成拋異常
//int numberOne = Convert.ToInt32("123abc");
//parse也是同樣,區別在於convert調用的是Parse,parse效率更高
//int numberTwo = int.Parse("123abc");性能
//Tryparse失敗,不拋異常,性能更高,不成功將變量賦值爲0 int number = 1; //方法 參數 返回值 bool b = int.TryParse("123abc", out number); Console.WriteLine(b); Console.WriteLine(number); //稱爲方法或者函數,這個方法就是將字符串轉換爲int類型 Console.ReadKey(); /* 循壞錄入5我的的年齡並計算平均年齡,若是了錄入的數據出現負數或大於 100的數,當即中止輸入並報錯。(這題還有反序的作法,很簡單) */ int sum = 0; bool c = true; for (int i = 1; i <= 5; i++) { try { Console.WriteLine("請輸入第{0}我的的年齡", i); int age = Convert.ToInt32(Console.ReadLine()); if (age >= 0 && age <= 100) { sum += age; } else { Console.WriteLine("輸入的年齡範圍不對,退出程序!"); c = false; break; } } catch { Console.WriteLine("輸入的內容不能轉換成年齡,退出程序!"); c = false; break; } } if (c) { Console.WriteLine("5我的的平均年齡是:{0}", sum / 5); } Console.ReadKey(); /* 在while中用break實現要求用戶一直輸入用戶名和密碼,只要不是admin/888888 就一直提示要求從新輸入,若是正確則提示登陸成功 */ string userName = ""; string userPwd = ""; while (true) { Console.WriteLine("請輸入用戶名"); userName = Console.ReadLine(); Console.WriteLine("請輸入密碼"); userPwd = Console.ReadLine(); if (userName == "admin" && userPwd == "888888") { Console.WriteLine("登陸成功"); break; } } Console.ReadKey(); /* 1-100之間的整數相加,獲得累加值大於20的當前述(好比:1+2+3+4+5+6=21)結果6 (這題開始沒讀懂提議,因此每累加一次都將sum歸零一次,這樣就求得1-100全部20的累加數,若是按照題意,只須要打印6則將sum=0替換爲break;) */ int sum = 0; for (int i = 1; i <= 100; i++) { sum += i; if (sum >= 20) { console.writeline(i); sum = 0; } } console.readkey();
4、continue關鍵字和質數
continue:當即結束本次循環,判斷循環條件若是成立,則進入下一次循環,不然退出循環調試
//計算1-100之間的數,除了能被7整除的數的和 int sum = 0; int i = 0; while (i <= 100) { if (i % 7 == 0) { i++; continue; } else { sum += i; i++; } } Console.WriteLine(sum); Console.ReadKey(); //找出100之內的全部素數(這題是初級算法題,bool放第一個for循環裏面,由於每次都要將bool值重置回來,否則就一直都是false) //素數就是質數:只能被1和這個數字自己整除的數字,1不算! for (int i = 2; i <= 100; i++) { bool b = true; for (int j = 2; j < i; j++) { //除盡說明不是質數,不必在繼續下去 if (i % j == 0) { b = false; break; } } if (b) { Console.WriteLine("質數有{0}", i); } } Console.ReadKey();
4、三元表達式
語法:
表達式1?表達式2:表達式3;
表達式1通常爲一個關係表達式。
若是表達式1的值爲true,那麼表達式2的值就是整個三元表達式的值。
若是表達式1的值爲false,那麼表達式3的值就是整個三元表達式的值。
注意:表達式2的結果類型必須跟表達式3的結果類型一致,而且也要跟整個三元表達式的結果類型一致。code
//讓用戶輸入兩個數字比兩個數字的大小 try { Console.WriteLine("輸入第一個數字"); int numberOne = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("輸入第二個數字"); int numberTwo = Convert.ToInt32(Console.ReadLine()); int max = numberOne > numberTwo ? numberOne : numberTwo; Console.WriteLine(max); } catch { Console.WriteLine("輸入的數字不能正確被轉換,退出程序!"); } Console.ReadKey(); //讓用戶輸入姓名,只要不是老趙,就都返回雜種 Console.WriteLine("請輸入姓名"); string name = Console.ReadLine(); string result = name == "老趙" ? "淫才啊" : "雜種啊"; Console.WriteLine(result); Console.ReadKey();
5、隨機數
//產生隨機數
//1。建立可以產生隨機數的對象
Random r = new Random();
//2.讓產生隨機數的這個對象調用方法來產生隨機數
int rNumber = r.Next(1, 10);
Console.WriteLine(rNumber);
Console.ReadKey();對象
//輸入名字隨機顯示這我的上輩子是什麼人 //1.建立可以產生隨機數的對象 //2.產生隨機數 Console.WriteLine("輸入你的姓名"); string name = Console.ReadLine(); Random r = new Random(); int n = r.Next(1, 7); switch (n) { case 1:Console.WriteLine("茅十八"); break; case 2:Console.WriteLine("小桂子"); break; case 3:Console.WriteLine("鰲拜啊"); break; case 4:Console.WriteLine("神龍教主"); break; case 5:Console.WriteLine("吳應熊"); break; case 6:Console.WriteLine("陳近南"); break; } Console.ReadKey();