您好,登錄后才能下訂單哦!
一、if結構的基本語法:
if(條件)
語句1;
執行過程:首先判斷條件的結果,如果條件為ture,則這行語句1,如果條件為false,則跳過語句1。執行后面的語句。
注意:
1)if后面的括號中的條件,要能計算成一個bool類型的值。
2)默認情況下,if語句只能帶1句話,即和if語句有關系的語句只有語句1.
if帶多句話可以寫成:
if(條件)
{
語句1;
語句2;
。。。。。。。。。
}
我們在寫程序的時,哪怕if語句只帶一句話,也要寫在大括號中。
二、if-else結構:
語法:
if(條件)
{
語句1;
}
else
{
語句塊2;
}
執行過程:
如果條件為ture,則執行if帶的語句塊1,并且跳過else帶的語句2
如果條件為false,則跳過if帶的語句塊1,執行else帶的語句塊2
上面兩個語句塊,根據條件結束為ture或False,總要執行一個。
三、if-else if
在if-else if語句中,只有當上一個條件不成立時,才會進入下一個if語句并進行if語句后面的條件判斷。
一旦有一個if后面的條件為ture,則執行此if所帶的語句(塊),語句(塊)執行完成后,程序跳出if-else if結構。
如果所有的if條件都不成立,則執行最后的else所帶的語句,如果最后沒有else語句,則什么都不執行。
練習一
練習二
練習三
四、switch-case語法:
switch(表達式/變量)
{
case 值1:語句塊1;
break;
case 值2:語句塊2;
break;
default: 語句塊3;
break;
}
執行過程:
首先計算表達式,然后根據計算的結果與匹配case后面的值,如果有匹配項,則執行匹配項后面的語句,
直到break語句跳出 switch-case,如果所有的case值都不匹配,那么default則執行 default后面的語句,直到 break結束。
如果沒有default,則跳出switch-case,什么都不執行。
switch與if的區別
相同點:都可以實現多分枝結構
不同點:
·switch:一般只能用于等值比較
·if-else if 可以處理范圍
五,while循環的語法
while(條件) //條件為循環條件
{
循環體(要循環執行的N條程序)
}
執行過程
1 先判斷循環條件,如果條件為true則轉向2,如果條件為false則轉向3
2 執行循環體,循環體執行完后轉向1
3 跳出循環體,循環結束
在循環體中,一定要有那么一句話,改變循環條件中的某個變量的值,使循環條件終有那么一天為 false.
While循環特點:先判斷,再執行
class Program { static void Main(string[] args) { //習題一 int i = 0; while (i < 100) { Console.WriteLine("{0}.\t歡迎您來到傳智播客學習!\t",i+1); i++; } Console.ReadKey(); } }
class Program { static void Main(string[] args) { //習題二 Console.WriteLine("請輸入你們班級有多少人:"); int count = Convert.ToInt32(Console.ReadLine()); int score = 0; int sum = 0; int i=0; while (i< count) { Console.WriteLine("請輸入第{0}個學生的成績",i+1); score = Convert.ToInt32(Console.ReadLine()); sum += score; i++; } Console.WriteLine("本班級有{0}人,班級總成績為{1},平均成績為{2}",count, sum,sum/count); Console.ReadKey(); } }
class Program { static void Main(string[] args) { //習題三 Console.WriteLine("這道題你會做了嗎?(會Y/不會N)"); string select = Console.ReadLine(); int i = 0; while (select=="N"&&i<10) { Console.WriteLine("這道題你會做了嗎?(會Y/不會N)"); select = Console.ReadLine(); i++; } Console.WriteLine("可以放學!"); Console.ReadKey(); } }
class Program { static void Main(string[] args) { //習題四 double count = 8000; int year = 2006; while (count < 200000) { count += count * 0.25; year++; } Console.WriteLine("到{0}年,培訓學員將達到20萬",year); Console.ReadKey(); } }
六、do-while
語法:
do
{
循環體;
}while(條件);
執行過程:
1. 執行循環體,執行完循環體轉向2
2. 判斷條件是否成立,如果條件為true,則轉向1,如果條件為false,則轉向3.
3. 跳出循環,循環結束。
假如循環條件一開始就不成立,對于while循環,一次都不會執行。對于do-while循環體會執行一次。
所以,do-while的循環體一般至少會被執行一次。
區別:
while先判斷,后執行。
do-while先執行,后判斷
//練習一 int i = 1; int sum = 0; do { sum+=i; i++; }while(i<=100); Console.WriteLine("1到100之間的整數和為{0}",sum); Console.ReadKey();
//練習二 string username; string password; do { Console.WriteLine("請輸入用戶名和密碼:"); username = Console.ReadLine(); password = Console.ReadLine(); if (username != "admin" || password != "888888") { Console.WriteLine("你輸入的用戶名或密碼有誤!請重新輸入!"); } } while (username != "admin" || password != "888888"); Console.WriteLine("登陸成功!"); Console.ReadKey();
//習題三 string name; do { Console.WriteLine("請用戶輸入學生的姓名:"); name = Console.ReadLine(); } while (name != "q"); Console.WriteLine("程序結束!") Console.ReadKey();
//習題四 int number; bool flag = true; do { Console.WriteLine("請用戶輸入一個數字:"); try { number = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("{0}的二倍是{1}", number, number * 2); flag = true; } catch { flag = false; } } while (flag);
//第五題 string input=""; int number; int max=0; bool flag = true; do { try { Console.WriteLine("請輸入一個數字:(或end結束)"); input = Console.ReadLine(); number = Convert.ToInt32(input); if (number > max) { max = number; } } catch { if (input != "end") { Console.WriteLine("你輸入有誤!程序結束!"); input = "end"; flag = false; } } }while(input!="end"); if(flag) { Console.WriteLine("你輸入的最大值是{0}", max); } Console.ReadKey();
class Program { static void Main(string[] args) { //習題六 int i=0; string answer; do { Console.WriteLine("張三表演第{0}次舞蹈",i+1); Console.WriteLine("老師你滿意嗎?(Y/N)"); answer=Console.ReadLine(); i++; }while(answer=="N"); Console.WriteLine("不錯!可以回家了!"); Console.ReadKey(); } }
七、for 循環語法:
for(表達式1;表達式2;表達式3)
{
循環體;
}
for循環一般用于已知循環次數的循環
一般情況下
表達式1 用于定義循環變量和對循環變量賦初值。
表達式2 就是循環條件
表達式3 用于改變循環標量的值
執行過程:
1) 計算表達式1,轉向第步
2) 計算表達式2(表達式2就是循環條件),如果表達式2的值為true,轉向第3步,如果表達式2的值為false,轉向第5步
3) 執行循環體,轉向第4步
4) 執行表達式3,轉向第2步
5) 循環結束
//問題一 int sum = 0; for (int i = 1; i <= 100; i++) { if (i % 2 == 0) { sum = sum + i; } } Console.WriteLine("1-100的偶數和為{0}", sum); Console.ReadKey();
//問題二 for (int i = 100; i <= 999; i++) { int ge = i % 10; int shi = i / 10 % 10; int bai = i / 100; if (i == ge * ge * ge + shi * shi * shi + bai * bai * bai) { Console.WriteLine(i); } Console.ReadKey(); }
//問題三 for (int i = 1; i <= 9; i++) { for (int j = 1; j <= 9; j++) { Console.Write(" {0}*{1}={2:00} ", i, j, i * j); } Console.WriteLine(); }
//問題三 for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { Console.Write(" {0}*{1}={2:00} ", i, j, i * j); } Console.WriteLine(); } Console.ReadKey();
break;
1) 可以用于switch-case判斷中,用于跳出switch
2) 用在循環中,用于立即跳出(終止)循環.
注意:用于循環中時;跳出的是break所在的循環
class Program { static void Main(string[] args) { int age = 0; int sum = 0; bool flag = false; for (int i = 0; i < 5; i++) { Console.WriteLine("請輸入第{0}個人的年齡",i+1); try { age = Convert.ToInt32(Console.ReadLine()); if (age < 0 || age >= 200) { Console.WriteLine("你輸入的年齡不合法!程序終止!"); break; } sum += age; flag = true; } catch { Console.WriteLine("你輸入的數據有誤!程序終止!"); break; flag = false; } } while (flag) { Console.WriteLine("你輸入的5個人的平均年齡為{0}", sum / 5); } } }
class Program { static void Main(string[] args) { string username ; string password ; while (true) { Console.WriteLine("請輸入的用戶名和密碼:"); username = Console.ReadLine(); password = Console.ReadLine(); if(username=="admin"&&password=="888888") { Console.WriteLine("登陸成功!"); break; } Console.WriteLine("你輸入的用戶名或密碼有誤!請重新輸入!"); } } }
class Program { static void Main(string[] args) { int i = 0; int sum = 0; while (i <=99) { i++; if (i % 7 == 0) { continue; } sum += i; } Console.WriteLine(sum); } }
continue;
用于循環中,程序一旦執行到continue語句,立即結束本次循環(就是不在執行循環體中continue下面的語句了),
直接進行下一次循環(對于do-while/while直接進行下一次循環條件的判斷,如果條件成立,則再次進入循環,
對于for循環,先執行表達式3,再判斷循環條件是否成立),
class Program { static void Main(string[] args) { int i = 0; int sum = 0; while (i <=99) { i++; if (i % 7 == 0) { continue; } sum += i; } Console.WriteLine(sum); } }
枚舉/常量/結構
常量:
語法:
const 類型 變量名 = 常量值
在定義時賦值,在其他地方不允許賦值,
枚舉:
讓我們定義一種類型并且在定義這種類型時我們要指定這個類型的所有值;
語法:
enum 自己起的類型名稱 {類型的值1,值2,值3,…};
枚舉的定義,一般和類定義在同一個級別,這樣,在同一個命名空間下的所有類都可以使用這個枚舉。
枚舉的作用:
1) 限制用戶不能隨意賦值,只能在定義枚舉時列舉的值中選擇.
2)不需要死記每一個值是什么,只需要選擇相應的值
注意:定義枚舉時,值不能為int類型
枚舉類型的變量都可以強制轉換成一個int類型
(int)變量名
把一個字符串轉換成枚舉類型:
自己定義的枚舉類型=自枚
變量 = (自枚)(Enum.Parse(typeof(自枚),”待轉換的字符串”));
namespace _01 { enum Gender { 男,女} class Program { static void Main(string[] args) { Gender sex; sex = Gender.男; Console.WriteLine("請輸入你的性別:"); try { string s = Console.ReadLine(); sex=(Gender)(Enum.Parse(typeof(Gender),s)); Console.WriteLine("你的性別為"+sex); } catch { Console.WriteLine("你輸入的性別有誤!"); } } } }
為什么要用結構:
1) 比如我們上課講的為了存儲一個人的信息,要聲明一組變量,當我們要存儲n個人的信息時,就要聲明n組變量,太麻煩了。
2) 存儲一個人信息的這幾個變量之間沒有關系,容易混淆。
語法:
訪問修飾符 struct 結構名
{
定義結構成員
}
定義好一個機構后,就可以直接聲明相應的變量.
聲明好變量后,通過變量名.成員名來訪問結構的成員
namespace _02結構 { public enum Gender { 男, 女 } public struct Person //定義一個叫Penson的結構 { public string name;//結構的成員 public Gender sex;//結構的成員 public int age;//結構的成員 } class Program { static void Main(string[] args) { Person onePerson; onePerson.name="張三"; onePerson.age = 20; onePerson.sex = Gender.男; Console.WriteLine("我叫{0},今年{1}歲,我是{2}性", onePerson.name, onePerson.age, onePerson.sex); Person secPerson; secPerson.name = "李四"; secPerson.age = 21; secPerson.sex = Gender.男; Console.WriteLine("我叫{0},今年{1}歲,我是{2}性", secPerson.name, secPerson.age, secPerson.sex); Console.ReadKey(); } } }
可訪問性不一致:
enum Gender {男,女}
改為:public enum Gender {男,女}
enum 的默認訪問權限可能是Private,雖然還有些困惑,但加上public沒錯.
數組:
可以幫我們一次聲明多個同類型的變量。這些變量在內存中是連續儲存的。
數組聲明語法:
數據類型[]數組名=new數據類型[數組長度];
int [] score = new int [5];
上句話就是聲明了一個數組長度為5,數組名叫score的數組.
通俗點說:就是聲明了一個數組,里面包含5個int 類型的變量
數組名叫 score 里面5個int 類型的變量叫數組的元素,排列順序為 0,1,2,3,4
如何訪問數組: 通過下標來訪問數組 (也叫索引器)
比如我們要想第0個元素賦予一個3,可以這樣寫,
score[0] = 3;
int類型數組一旦聲明里面的每一個元素被初始化成0;
通過 數組名.Length 可以獲得數組長度
Console.Clear(); 清屏
int sum = 0; int max; int []score=new int [10];//聲明一個有10個元素的數組 for(int i=0;i<score.Length;i++) { Console.WriteLine("請輸入第{0}個學生的成績:",i+1); score[i]=Convert.ToInt32(Console.ReadLine()); //sum += score[i]; } Console.Clear(); //通過一個循環來求一個數組中所有元素的和 for (int i = 0; i < score.Length; i++) { sum += score[i]; } Console.WriteLine("{0}個學生的平均成績為{1}",score.Length,sum/score.Length); //輸出數組每個元素的值 for (int i = 0; i < score.Length; i++) { Console.WriteLine("第{0}個學生的成績為{1}",i+1,score[i]); } //求10個學生成績的最高分 max = score[0]; for (int i = 0; i < score.Length; i++) { if (score[i] > max) { max = score[i]; } } Console.WriteLine("10個學生成績的最高分為{0}",max); Console.ReadKey();
//練習一 int[] nums = new[] { 12, 15, 21, 26, 64, 25, 89, 46, 75 }; int max = nums[0]; for (int i = 0; i < nums.Length; i++) { if (nums[i] > max) { max = nums[i]; } } Console.WriteLine("這個數組的最大數為{0}", max); Console.ReadKey();
//練習二 int[] nums = new[] { 12, 15, 21, 26, 64, 25, 89, 46, 75 }; int sum = 0; for (int i = 0; i < nums.Length; i++) { sum += nums[i]; } Console.WriteLine("這個數組的元素和為{0}", sum); Console.ReadKey();
//練習三 string[] names = { "梅西", "卡卡", "鄭大世" }; string str=""; for (int i = 0; i < names.Length; i++) { //if (i == names.Length - 1) //{ // str = str + names[i] ; //} //else //{ // str = str + names[i] + "|"; //} if (i == names.Length - 1) { break; } str = str + names[i] + "|"; } Console.WriteLine(str);
//練習四 int[] nums = new[] {-23,0,-52, 12, 15, 21, 26, 64, 25, 89, 46, 75 }; for (int i = 0; i < nums.Length; i++) { if (nums[i] > 0) { Console.WriteLine("該元素為正數,故加一為{0}", nums[i] + 1); } else { if (nums[i] < 0) { Console.WriteLine("該元素為負數,故減一為{0}", nums[i] - 1); } else { Console.WriteLine("該元素為0,故不變",nums[i]); } } } Console.ReadKey();
//練習五 string who; string[] nums = { "3", "a", "haha", "8" }; for (int i = 0; i < nums.Length / 2; i++) { who = nums[i]; nums[i] = nums[nums.Length - 1 - i]; nums[nums.Length - 1 - i] = who; } for (int i = 0; i < nums.Length; i++) { Console.WriteLine(nums[i]); } Console.ReadKey();
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。