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