程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 課堂總結3-語句,課堂3-語句

課堂總結3-語句,課堂3-語句

編輯:C++入門知識

課堂總結3-語句,課堂3-語句


一、順序語句

二、條件,分支語句

1、if語句

關鍵是能夠熟練運用 if的嵌套。要考慮好所有的情況。

如果說 條件是兩種情況相互對應的,那麼就可以只用 if 與else 。但必須要想好 每個else 跟哪個if是一對。

如果情況是相互獨立的三種情況以上,那麼可以選擇運用if ... else if ...else。

1.if語句

if(條件)
{
滿足條件的時候執行;
}

2. if(條件)

{
滿足條件執行;
}
else
{
不滿足條件時執行;
}

3 if(條件1)
{
滿足條件1的時候執行;
}
else if(條件2)
{
不滿足條件1的情況下滿足條件2;
}

4.

if(條件1)
{
if(條件2)
{
既滿足條件1又滿足條件2的時候執行;
}
}

2、switch 語句

如果說可選的條件比較多時,選擇switch語句,要比if語句效率要高。特別注意的是 case 後跟的break。

eg:

 1  //eg.6 swtich語句   作用域
 2         static void Maine(string[] args)
 3         {
 4             //Console.WriteLine("你本次選擇出場的英雄是:");
 5             Random r = new Random();
 6             int n = r.Next(10);
 7 
 8             string a;
 9 
10             switch (n)
11             {
12                 case 1: 
13                     a = "趙信";    break;
14                 case 2:
15                     a = "寒冰射手";break;
16                 case 3:
17                     a = "無極劍聖";break;
18                 case 4:
19                     a = "機器人";  break;
20                 default:
21                     a = "齊天大聖";break;
22             }
23             Console.WriteLine("本次選擇的英雄是:"+a);
24         }

 

三、循環語句

for循環

四要素:

初始條件,循環條件,狀態改變,循環體。 執行過程:

初始條件--循環條件--循環體--狀態改變--循環條件....

注意:for的小括號裡面分號隔開,for的小括號後不要加分號。

利用 加斷點的方式,可以更好的明白for的工作原理。

1.for循環空操作完成的實例, 輸出100以內的數字

 1 static void Main(string[] args)
 2         {
 3             int i = 1;
 4             for (; ; )
 5             {
 6                 if (i > 100)
 7                 {
 8                     break;
 9                 }
10                 Console.Write(i + "\t");
11                 i++;
12             }
13             Console.ReadKey();
14         }

當然你也可以用 while,if() break;的嵌套完成上述操作。

2.正序和逆序的推斷問題。 (折紙問題)

 1  //eg.5 折紙問題
 2         static void Maine(string[] args)
 3         {
 4             //Console.WriteLine("請輸入次數");
 5             //int n = Convert.ToInt32(Console.ReadLine());
 6 
 7 
 8             //int i = 0;
 9             //for (double sum = 0.0001; sum <= 8848.0; sum = sum * 2)
10             //{
11             //    i++;
12 
13             //}
14             //Console.WriteLine(i);
15 
16             double sum = 0.0001;
17             int z = 0;
18 
19             for (int i = 0; ; i++)
20             {
21                 z++;
22                 sum = sum * 2;
23 
24                 if (sum >= 8848.0)
25                 {
26                     Console.WriteLine(z);
27                     break;
28                 }
29             }
30         }

3.應用:a.窮舉法: 用循環把各種可能的情況都給走一遍,然後用if條件把滿足要求的結果給篩選出來。

  1 //eg.6 百馬百石 大馬馱2石,中馬馱1石 小馬馱0.5石 
  2         static void Main6a(string[] args)
  3         {
  4             for (int i = 0; i <= 50; i++)
  5             {
  6                 for (int j = 0; j <= 100; j++)
  7                 {
  8                     for (int k = 0; k <= 200; k++)
  9                     {
 10                         if ( (i * 2 + j * 1 + k * 0.5 == 100) && (i + j + k == 100) )
 11                         {
 12                             Thread.Sleep(50);
 13                             Console.WriteLine("大馬需要" + i + "頭,中馬需要" + j + "頭,小馬需要" + k + "頭。");
 14                         }
 15                     }
 16                 }
 17             }
 18         }
 19         //eg.7 
 20         static void Maing(string[] args)
 21         {
 22             for (int i = 1; i < 10; i++)
 23             {
 24                 for (int j = 1; j < 5; j++)
 25                 {
 26                     for (int k = 1; k < 25; k++)
 27                     {
 28                         if (i * 5 + j * 10 + k * 25 == 50)
 29                         {
 30                             Console.WriteLine("50元用來買" + i.ToString() + "個牙刷," + j.ToString() + "個牙膏," + k.ToString() + "塊肥皂,正好能用完。");
 31                         }
 32                     }
 33                 }
 34             }
 35 
 36         }
 37         //eg.8 有1塊,2塊,5塊的錢若干,湊出20塊錢,有幾種湊法
 38         static void Mainh(string[] args)
 39         {
 40             int m = 0;
 41             for (int i = 0; i <= 20; i++)
 42             {
 43                 for (int j = 0; j <= 10; j++)
 44                 {
 45                     for (int k = 0; k < 4; k++)
 46                     {
 47                         if (i * 1 + 2 * j + 5 * k == 20)
 48                         {
 49                             m++;
 50                             Console.WriteLine("一共有" + m + "中方法。");
 51                             Console.WriteLine("需要1元的" + i + "張,2元的" + j + "張,5元的" + k + "張。");
 52                         }
 53                     }
 54                 }
 55             }
 56         }
 57         //eg.9  1 () 2 () 3 ()4 = 4;問括號裡我要填 (- 或 +)
 58         static void Maini(string[] args)
 59         {
 60             for (int i = 1; i <= 1; i += 2)
 61             {
 62                 for (int j = -1; j <= 1; j += 2)
 63                 {
 64                     for (int k = -1; k <= 1; k += 2)
 65                     {
 66                         for (int l = -1; l <= 1; l += 2)
 67                         {
 68                             if (1 * i + 2 * j + 3 * k + l * 4 == 4)
 69                             {
 70                                 Console.WriteLine("i=" + i + ",j=" + j + ",k=" + k + ",l=" + l + "。");
 71                             }
 72                         }
 73 
 74 
 75                     }
 76                 }
 77             }
 78         }
 79         //eg.10  123()45()67()8()9=100;要求在()裡面填寫+或-使等式成立。
 80         static void Maini2(string[] args)
 81         {
 82             for (int a = -1; a <= 2; a += 2)
 83             {
 84                 for (int b = -1; b <= 2; b += 2)
 85                 {
 86                     for (int c = -1; c <= 2; c += 2)
 87                     {
 88                         for (int d = -1; d <= 2; d += 2)
 89                         {
 90                             if (123 + a * 45 + b * 67 + c * 8 + d * 9 == 100)
 91                                 Console.WriteLine("a=" + a + ",b=" + b + ",c=" + c + ",d=" + d);
 92                         }
 93                     }
 94                 }
 95             }
 96             Console.ReadKey();
 97         }
 98         //eg.11 某偵查隊接到一項緊急任務,要求在A.B.C,D,E,F六名隊員中盡可能多的挑選若干人。A和B兩人必須去一人。A和D不能同時去。A,E,F三人必須兩人去。B和C都
//去或都不去。C和D兩人中去一人。若D不去,E也不去。問應叫哪幾個人去?(靈活運用1與0)
 99         static void Mainj(string[] args)
100         {
101             for (int a = 0; a <= 1; a++)
102             {
103                 for (int b = 0; b <= 1; b++)
104                 {
105                     for (int c = 0; c <= 1; c++)
106                     {
107                         for (int d = 0; d <= 1; d++)
108                         {
109                             for (int e = 0; e <= 1; e++)
110                             {
111                                 for (int f = 0; f <= 1; f++)
112                                 {
113                                     if ((a + b >= 1) && (a + d <= 1) && (a + e + f == 2) && (b + c != 1) && (c + d == 1) && (d - e >= 0))
114                                     {
115                                         Console.WriteLine("A=" + a + "B=" + b + "C=" + c + "D=" + d + "E=" + e + "F=" + f);
116                                     }
117 
118                                 }
119                             }
120                         }
121                     }
122                 }
123             }
124         }
125         //老師版
126         static void Mainj1(string[] args)
127         {
128             int a, b, c, d, e, f;
129             for (a = 0; a < 2; a++)
130             {
131                 for (b = 0; b < 2; b++)
132                 {
133                     for (c = 0; c < 2; c++)
134                     {
135                         for (d = 0; d < 2; d++)
136                         {
137                             for (e = 0; e < 2; e++)
138                             {
139                                 for (f = 0; f < 2; f++)
140                                 {
141                                     if ((a + b >= 1) && (a + d <= 1) && (a + e + f == 2) && (b + c != 1) && (c + d == 1) && ((d + e == 0) || d == 1))
142                                     {
143                                         Console.WriteLine("A=" + a + "B=" + b + "C=" + c + "D=" + d + "E=" + e + "F=" + f);
144                                     }
145                                 }
146                             }
147                         }
148                     }
149                 }
150             }
151             Console.ReadKey();
152         }

b.迭代法:有一定規律。 每次循環都是從上次運算結果中獲得數據,本次運算的結果都是要為下次運算做准備。

eg1 兔生兔問題

有一對幼兔,幼兔一個月後成長為小兔,小兔一個月後成長為成兔並生下一對幼兔,問幾年後有多少對兔子,其中幼兔,小兔,成兔分別是多少?

 1 //eg.2 兔生兔問題
 2 
 3         //方法一
 4         static void Maink3(string[] args)
 5         {
 6             int syt = 1, byt = 0;
 7             int sxt = 0, bxt = 0;
 8             int sct = 0, bct = 0;
 9 
10             Console.WriteLine("請輸入月數:");
11             int month = Convert.ToInt32(Console.ReadLine());
12             int sum;
13 
14             for (int i = 1; i <= month; i++)
15             {
16                 //賦值順序不能變,必須按照兔子生長規律來,先有的bct才會有byt
17                 bct = sxt + sct;
18                 bxt = syt;
19                 byt = sxt + sct;
20 
21                 //bct = sxt + sct; 這樣寫,必須注意他的順序
22                 //bxt = syt;
23                 //byt = bct;
24 
25 
26 
27                 //byt = bct;//錯誤的
28                 //bxt = syt;
29                 //bct = sxt + sct;  
30 
31                 syt = byt;
32                 sxt = bxt;
33                 sct = bct;
34 
35                 //sum = byt + bxt + bct;
36             }
37 
38             sum = byt + bxt + bct;
39 
40             Console.WriteLine("過了{0}個月後,幼兔個數為{1}對,小兔個數為{2}對,成兔個數為{3}對,總共有{4}對。", month.ToString(), byt, bxt, bct,sum);
41           
42         }
43         //方法二
44         static void Maink4(string[] args)
45         {
46             int n = Convert.ToInt32(Console.ReadLine());
47             int tu = 0;//要求那個月的總數
48             int tu1=1, tu2=1;//倒數第一個為 tu1,倒數第二個為 tu2
49 
50             for (int i = 3; i < n;i++ )
51             {
52                 tu = tu1 + tu2;
53                 tu2 = tu1;
54                 tu1 = tu;
55             }
56             Console.WriteLine(tu);
57 
58         }
59         //方法三
60         static void Maink5(string[] args)
61         {
62             Console.Write("請輸入月數:");
63             int m = int.Parse(Console.ReadLine());
64             int ct = 0;//成兔的對數
65             int xt = 0;//小兔的對數
66             int yt = 1;//
67             int zt = 1;//
68 
69             for (int i = 1; i <= m; i++)
70             {
71                 if (i == 1)
72                 {
73                     ct = 0;
74                     xt = 0;
75                     yt = 1;
76                 }
77                 else
78                 {
79                     ct = xt + ct;
80                     xt = yt;
81                     yt = ct;
82                 }
83                 zt = yt + xt + ct;
84                 
85                 Console.WriteLine(i.ToString() + "個月後成兔的對數是:" + ct.ToString());
86                 Console.WriteLine(i.ToString() + "個月後小兔的對數是:" + xt.ToString());
87                 Console.WriteLine(i.ToString() + "個月後幼兔的對數是:" + yt.ToString());
88                 Console.WriteLine(i.ToString() + "個月後兔子的總對數是:" + zt.ToString());
89             }
90             Console.ReadLine();
91         }

eg 2  100以內的所有數的和。

eg3. 求階乘。
eg4.求年齡。
eg5.折紙。
eg6.棋盤放糧食。
eg7.猴子吃桃子。

 1   static void Maink(string[] args)
 2         {
 3             int sum = 1;
 4             for (int i = 0; i < 6; i++)
 5             {
 6                 int t = (sum + 1) * 2;
 7                 sum = t;
 8             }
 9             Console.WriteLine("桃子一共有:" + sum + "個。");
10         }


eg8.落球問題。一個球從10米高度落下,每次彈起2/3的高度,問第五次彈起後的高度?

四、while 循環。一般用在一些死循環當中。

五、try catch。保護程序,避免程序出錯時無法運行。

格式:

 try//快捷方式:雙擊 tab鍵                                                                        
            {

            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
 
            }

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved