程序流(程序的結(jié)構(gòu))
一续徽、順序結(jié)構(gòu)
程序的入口都是Main函數(shù)弟劲,代碼從上到下叮姑,從左到右依次執(zhí)行
二、分支結(jié)構(gòu)? if / if ...else? /? if...else if ... /? switch...case
當(dāng)我們的程序執(zhí)行到某個(gè)位置的時(shí)候砾脑,進(jìn)行條件判斷幼驶, 根據(jù)判斷的結(jié)果來執(zhí)行不同的操作
if();{
語句1
} ? ? ?//當(dāng)條件表達(dá)式后有分號(hào)時(shí),不管判斷語句拦止,都執(zhí)行語句1
? if else if
// ? ? ? ? ? if(條件表達(dá)式){
// ? ? ? ? ? ? ? 如果表達(dá)式為真將執(zhí)行的語句
// }else{ ? ? //esle將匹配同一級(jí)別最近的if
// ? ? ? ? 如果表達(dá)式為假將執(zhí)行的語句
// ? ? ? ? ? ? ? }
//例:
// Console.WriteLine("請(qǐng)輸入你的年齡:");
// string age = Console.ReadLine();//string是字符串
//當(dāng)你需要輸入數(shù)字來運(yùn)行時(shí)县遣,ReadLine用來讀取你輸入的東西
// int age_number = int .Parse(age);//把string轉(zhuǎn)化為int的方法
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? int.Parse(string類型)
//用if else 語句表達(dá)?
年齡測(cè)試 18歲以上已成年 12-18歲為青少年 2-12歲小孩 2歲以下兒童
?if (age_number >= 18) {
// Console.WriteLine ("已成年");
// } else if (age_number >= 12) {//else 加 if 就可以繼續(xù)寫條件
// Console.WriteLine ("青年少");
// } else if (age_number >= 2) {//有else時(shí) 對(duì)應(yīng)的是同一級(jí)別最近的 if
// Console.WriteLine ("孩子");
// } else {
// Console.WriteLine ("baby");
// }
格式二:多分支 語句 ?switch(開關(guān))...case(情況)
switch ()里不可以寫float浮點(diǎn)型 類和對(duì)象也不行
根據(jù)表達(dá)式的值糜颠,取大括號(hào)中查找與該值相匹配的分支汹族;
case 后面只要有操作就一定要加break
遇到break則結(jié)束 switch 語句
用switch case 表達(dá)
年齡測(cè)試 輸入18歲 顯示 我18歲了 輸入19歲 顯示我19歲了
// Console.WriteLine("請(qǐng)輸入你的年齡:");
// string age = Console.ReadLine();//
// switch(age){//(switch后面可以用string或int ?不能是浮點(diǎn)類型
? ? ? ? ? ? ? ? ? ? ? ? (age)是一個(gè)用來做判斷(case)的值萧求,當(dāng)case 18等于age時(shí),那么break彈出)
//
// case "18":{//case ""后面要與switch后面的數(shù)據(jù)類型一樣顶瞒,如果是string的話就要加“引號(hào)”
// ? ? ? ? //case 可以寫很多個(gè) ?case后面是一個(gè)常量或者常量表達(dá)式
? ? ? ? ? ?//case 后面沒有語句的話 繼續(xù)執(zhí)行下面的語句?
// Console.WriteLine("我成年了");
// break;//(//有語句的話必須寫break
? ? ? ? ? ? ? ? ?//走到break時(shí)直接斷掉彈出夸政,不走其他的)
// }
// case "19":{
// Console.WriteLine ("我19歲");
// break;
// }
// default://(不滿足前面的條件時(shí))
? ? ? ? ? ? ? ?//default 可以舍掉 只能有一個(gè) ?
// Console.WriteLine ("幾歲?榴徐?");
// break;
// }
// Console.WriteLine ("a~~~~~");
三守问、循環(huán)結(jié)構(gòu)? for ?while? ? do...while? foreach...in
在滿足某個(gè)條件的時(shí)候反復(fù)執(zhí)行一個(gè)語句序列;
記算次數(shù)方法:后一個(gè)數(shù)減前一個(gè)數(shù)加 1
// while(bool 表達(dá)式){
//當(dāng)給定條件為真時(shí)坑资,重復(fù)語句或語句組耗帕。它會(huì)在執(zhí)行循環(huán)主體之前測(cè)試條件.
// }
//? ? ? 循環(huán)體?
? ? ?
// 例1:
利用while表達(dá) 1到10 的數(shù)字相加等于多少(0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10)
? ? ? ? ? ? ? ? ? ? ? ? 1到任意輸入數(shù)字相加等于多少 ?
// Console.WriteLine ("請(qǐng)輸入數(shù)字");
// int i = 0 , sum = 0 ;i代表第0個(gè)數(shù)字,sum表示n個(gè)數(shù)字相加的和
// int n = int.Parse (Console.ReadLine ());n表示輸入的數(shù)字
// while (i < n +1 ){//因?yàn)槭菑?開始 所以要 + 1
// sum += i;//意思是 sum = sum +i
// ++i;//循環(huán)
// } ? n是不變的 所以++i就是 1到n的每一個(gè)數(shù)字
// Console.WriteLine ("{0}",sum);輸出和sum
用while ?嵌套if 表達(dá) ?
0到n里的偶數(shù)相加
// int i = 0, sum = 0;
// int n = int.Parse (Console.ReadLine ());
// while (i < n + 1) {
// if(i % 2 == 0){
// sum += i;
// }
// ++i;
// }
// Console.WriteLine ("{0}",sum);
用while if 表達(dá)?
0到數(shù)字n一半的數(shù)相加的值?
break的作用:斷開跳出循環(huán)
// int i = 0, sum = 0;
// int n = int.Parse (Console.ReadLine ());
// while (i < n + 1) {
// if(i > n/2){
// break;//跳出循環(huán),繼續(xù)執(zhí)行循環(huán)之后的語句
// }
// Console.WriteLine ("i = {0}",i);
// sum += i;
// ++i;
// }
//? ? ? ? ? Console.WriteLine ("{0}",sum);
//多用打印語句來檢測(cè)對(duì)錯(cuò)
運(yùn)用while if continue 表達(dá)
0到數(shù)字n的和 不包括5
continue 的作用:跳出一次循環(huán) 繼續(xù)執(zhí)行前面的循環(huán)
// int i = 0, sum = 0;
// int n = int.Parse (Console.ReadLine ());
// while (i < n) {
// ++i;//(因?yàn)?+i放到前面袱贮,所以不用 n+1)? 如果不放到前面就會(huì)一直在5這里循環(huán)
// if(i == 5){
// continue;//跳出本次循環(huán)仿便,繼續(xù)執(zhí)行之后的循環(huán),直至循環(huán)結(jié)束
// ? ? ? ? ? ? ? ? //作用:忽略了第5次循環(huán)
// }
// Console.WriteLine ("i = {0}",i);
// sum += i;
//
// }
// Console.WriteLine ("{0}",sum);
do while 語句
//do...while 循環(huán)是在循環(huán)的尾部檢查它的條件攒巍。
//do...while 循環(huán)與 while 循環(huán)類似嗽仪,但是 do...while 循環(huán)會(huì)確保至少執(zhí)行一次循環(huán)。
// int i = 0, sum = 0;
//? ? ? ? ? ? int n = int.Parse (Console.ReadLine ());
// do {
// Console.WriteLine("你好你好");//先執(zhí)行一次
// ++i;//(這里的條件是為了達(dá)到false柒莉,當(dāng)false的時(shí)候結(jié)束循環(huán))
// }while(i < 2);//不成立的話跳出循環(huán)
// Console.WriteLine("sum = {0}",sum);
// }
//時(shí)間復(fù)雜度是檢驗(yàn)代碼好壞的標(biāo)準(zhǔn)之一
// //祖父今年65歲闻坚,3個(gè)孫子分別15、13兢孝、9歲窿凤,問多少年后3個(gè)孫子的年齡之和等于祖父?
// //65 + x = 15 + 13 + 9 + 3 * x
// int x = 1 ;
// while (true)//先假設(shè)死循環(huán)
// {
// if (65+ x == 15 + 13 + 9 + (3 * x)) {
// Console.WriteLine ("{0}年之后年齡"+"相加相等",x);(加號(hào)的使用)
// break;
// }
// ++x;
// }
for循環(huán)
// for(初始條件;循環(huán)條件;循環(huán)增量){ ?注:初始條件和 循環(huán)增量 都可以為空跨蟹,但要有分號(hào)
// 循環(huán)體【初始條件只執(zhí)行一次雳殊,判斷條件為真之后走循環(huán)體(如果為假,則不執(zhí)行循環(huán)主體喷市,且控制流會(huì)跳轉(zhuǎn)到緊接著 for 循環(huán)的下一條語句)相种;
循環(huán)體之后再到條件變化,然后再判斷品姓,滿足的話再繼續(xù)走循環(huán)體)寝并。
條件變化語句指一次循環(huán)執(zhí)行完成后才執(zhí)行的語句
// }
for循環(huán)嵌套
見 自學(xué)筆記一?
int i = 0; //(可以寫到外面)
for (int i = 0; true; ++i) {
//++i
Console.WriteLine ("{0}", i);//算次數(shù)方法:后一個(gè)數(shù)減前一個(gè)數(shù)加 1
if (i > 500) {
break;
}
}
Console.WriteLine ("{0}", i);//注:聲明的變量,生命周期范圍在離他最近的{}內(nèi)腹备;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?且不一定要在{}里面衬潦,注意是變量使用在哪里面的;
}
}
}