C++學(xué)習(xí)小結(jié)之語(yǔ)句
一、順序語(yǔ)句
二、條件,分支語(yǔ)句
1、if語(yǔ)句
關(guān)鍵是能夠熟練運(yùn)用 if的嵌套。要考慮好所有的情況。
如果說(shuō) 條件是兩種情況相互對(duì)應(yīng)的,那么就可以只用 if 與else 。但必須要想好 每個(gè)else 跟哪個(gè)if是一對(duì)。
如果情況是相互獨(dú)立的三種情況以上,那么可以選擇運(yùn)用if ... else if ...else。
1.if語(yǔ)句
if(條件)
{
滿足條件的時(shí)候執(zhí)行;
}
2. if(條件)
{
滿足條件執(zhí)行;
}
else
{
不滿足條件時(shí)執(zhí)行;
}
3 if(條件1)
{
滿足條件1的時(shí)候執(zhí)行;
}
else if(條件2)
{
不滿足條件1的情況下滿足條件2;
}
4.
if(條件1)
{
if(條件2)
{
既滿足條件1又滿足條件2的時(shí)候執(zhí)行;
}
}
2、switch 語(yǔ)句
如果說(shuō)可選的條件比較多時(shí),選擇switch語(yǔ)句,要比if語(yǔ)句效率要高。特別注意的是 case 后跟的break。
eg:
//eg.6 swtich語(yǔ)句 作用域
static void Maine(string[] args)
{
//Console.WriteLine("你本次選擇出場(chǎng)的英雄是:");
Random r = new Random();
int n = r.Next(10);
string a;
switch (n)
{
case 1:
a = "趙信"; break;
case 2:
a = "寒冰射手";break;
case 3:
a = "無(wú)極劍圣";break;
case 4:
a = "機(jī)器人"; break;
default:
a = "齊天大圣";break;
}
Console.WriteLine("本次選擇的英雄是:"+a);
}
三、循環(huán)語(yǔ)句
for循環(huán)
四要素:
初始條件,循環(huán)條件,狀態(tài)改變,循環(huán)體。 執(zhí)行過(guò)程:
初始條件--循環(huán)條件--循環(huán)體--狀態(tài)改變--循環(huán)條件....
注意:for的小括號(hào)里面分號(hào)隔開(kāi),for的小括號(hào)后不要加分號(hào)。
利用 加斷點(diǎn)的方式,可以更好的明白for的工作原理。
1.for循環(huán)空操作完成的實(shí)例, 輸出100以內(nèi)的數(shù)字
static void Main(string[] args)
{
int i = 1;
for (; ; )
{
if (i > 100)
{
break;
}
Console.Write(i + "\t");
i++;
}
Console.ReadKey();
}
當(dāng)然你也可以用 while,if() break;的嵌套完成上述操作。
.正序和逆序的推斷問(wèn)題。 (折紙問(wèn)題)
//eg.5 折紙問(wèn)題
static void Maine(string[] args)
{
//Console.WriteLine("請(qǐng)輸入次數(shù)");
//int n = Convert.ToInt32(Console.ReadLine());
//int i = 0;
//for (double sum = 0.0001; sum <= 8848.0; sum = sum * 2)
//{
// i++;
//}
//Console.WriteLine(i);
double sum = 0.0001;
int z = 0;
for (int i = 0; ; i++)
{
z++;
sum = sum * 2;
if (sum >= 8848.0)
{
Console.WriteLine(z);
break;
}
}
}
.應(yīng)用:a.窮舉法: 用循環(huán)把各種可能的情況都給走一遍,然后用if條件把滿足要求的結(jié)果給篩選出來(lái)。
//eg.6 百馬百石 大馬馱2石,中馬馱1石 小馬馱0.5石
static void Main6a(string[] args)
{
for (int i = 0; i <= 50; i++)
{
for (int j = 0; j <= 100; j++)
{
for (int k = 0; k <= 200; k++)
{
if ( (i * 2 + j * 1 + k * 0.5 == 100) && (i + j + k == 100) )
{
Thread.Sleep(50);
Console.WriteLine("大馬需要" + i + "頭,中馬需要" + j + "頭,小馬需要" + k + "頭。");
}
}
}
}
}
//eg.7
static void Maing(string[] args)
{
for (int i = 1; i < 10; i++)
{
for (int j = 1; j < 5; j++)
{
for (int k = 1; k < 25; k++)
{
if (i * 5 + j * 10 + k * 25 == 50)
{
Console.WriteLine("50元用來(lái)買" + i.ToString() + "個(gè)牙刷," + j.ToString() + "個(gè)牙膏," + k.ToString() + "塊肥皂,正好能用完。");
}
}
}
}
}
//eg.8 有1塊,2塊,5塊的錢若干,湊出20塊錢,有幾種湊法
static void Mainh(string[] args)
{
int m = 0;
for (int i = 0; i <= 20; i++)
{
for (int j = 0; j <= 10; j++)
{
for (int k = 0; k < 4; k++)
{
if (i * 1 + 2 * j + 5 * k == 20)
{
m++;
Console.WriteLine("一共有" + m + "中方法。");
Console.WriteLine("需要1元的" + i + "張,2元的" + j + "張,5元的" + k + "張。");
}
}
}
}
}
//eg.9 1 () 2 () 3 ()4 = 4;問(wèn)括號(hào)里我要填 (- 或 +)
static void Maini(string[] args)
{
for (int i = 1; i <= 1; i += 2)
{
for (int j = -1; j <= 1; j += 2)
{
for (int k = -1; k <= 1; k += 2)
{
for (int l = -1; l <= 1; l += 2)
{
if (1 * i + 2 * j + 3 * k + l * 4 == 4)
{
Console.WriteLine("i=" + i + ",j=" + j + ",k=" + k + ",l=" + l + "。");
}
}
}
}
}
}
//eg.10 123()45()67()8()9=100;要求在()里面填寫(xiě)+或-使等式成立。
static void Maini2(string[] args)
{
for (int a = -1; a <= 2; a += 2)
{
for (int b = -1; b <= 2; b += 2)
{
for (int c = -1; c <= 2; c += 2)
{
for (int d = -1; d <= 2; d += 2)
{
if (123 + a * 45 + b * 67 + c * 8 + d * 9 == 100)
Console.WriteLine("a=" + a + ",b=" + b + ",c=" + c + ",d=" + d);
}
}
}
}
Console.ReadKey();
}
//eg.11 某偵查隊(duì)接到一項(xiàng)緊急任務(wù),要求在A.B.C,D,E,F六名隊(duì)員中盡可能多的挑選若干人。A和B兩人必須去一人。A和D不能同時(shí)去。A,E,F三人必須兩人去。B和C都
//去或都不去。C和D兩人中去一人。若D不去,E也不去。問(wèn)應(yīng)叫哪幾個(gè)人去?(靈活運(yùn)用1與0)
static void Mainj(string[] args)
{
for (int a = 0; a <= 1; a++)
{
for (int b = 0; b <= 1; b++)
{
for (int c = 0; c <= 1; c++)
{
for (int d = 0; d <= 1; d++)
{
for (int e = 0; e <= 1; e++)
{
for (int f = 0; f <= 1; f++)
{
if ((a + b >= 1) && (a + d <= 1) && (a + e + f == 2) && (b + c != 1) && (c + d == 1) && (d - e >= 0))
{
Console.WriteLine("A=" + a + "B=" + b + "C=" + c + "D=" + d + "E=" + e + "F=" + f);
}
}
}
}
}
}
}
}
//老師版
static void Mainj1(string[] args)
{
int a, b, c, d, e, f;
for (a = 0; a < 2; a++)
{
for (b = 0; b < 2; b++)
{
for (c = 0; c < 2; c++)
{
for (d = 0; d < 2; d++)
{
for (e = 0; e < 2; e++)
{
for (f = 0; f < 2; f++)
{
if ((a + b >= 1) && (a + d <= 1) && (a + e + f == 2) && (b + c != 1) && (c + d == 1) && ((d + e == 0) || d == 1))
{
Console.WriteLine("A=" + a + "B=" + b + "C=" + c + "D=" + d + "E=" + e + "F=" + f);
}
}
}
}
}
}
}
Console.ReadKey();
}
b.迭代法:有一定規(guī)律。 每次循環(huán)都是從上次運(yùn)算結(jié)果中獲得數(shù)據(jù),本次運(yùn)算的結(jié)果都是要為下次運(yùn)算做準(zhǔn)備。
eg1 兔生兔問(wèn)題
有一對(duì)幼兔,幼兔一個(gè)月后成長(zhǎng)為小兔,小兔一個(gè)月后成長(zhǎng)為成兔并生下一對(duì)幼兔,問(wèn)幾年后有多少對(duì)兔子,其中幼兔,小兔,成兔分別是多少?
//eg.2 兔生兔問(wèn)題
//方法一
static void Maink3(string[] args)
{
int syt = 1, byt = 0;
int sxt = 0, bxt = 0;
int sct = 0, bct = 0;
Console.WriteLine("請(qǐng)輸入月數(shù):");
int month = Convert.ToInt32(Console.ReadLine());
int sum;
for (int i = 1; i <= month; i++)
{
//賦值順序不能變,必須按照兔子生長(zhǎng)規(guī)律來(lái),先有的bct才會(huì)有byt
bct = sxt + sct;
bxt = syt;
byt = sxt + sct;
//bct = sxt + sct; 這樣寫(xiě),必須注意他的順序
//bxt = syt;
//byt = bct;
//byt = bct;//錯(cuò)誤的
//bxt = syt;
//bct = sxt + sct;
syt = byt;
sxt = bxt;
sct = bct;
//sum = byt + bxt + bct;
}
sum = byt + bxt + bct;
Console.WriteLine("過(guò)了{(lán)0}個(gè)月后,幼兔個(gè)數(shù)為{1}對(duì),小兔個(gè)數(shù)為{2}對(duì),成兔個(gè)數(shù)為{3}對(duì),總共有{4}對(duì)。", month.ToString(), byt, bxt, bct,sum);
}
//方法二
static void Maink4(string[] args)
{
int n = Convert.ToInt32(Console.ReadLine());
int tu = 0;//要求那個(gè)月的總數(shù)
int tu1=1, tu2=1;//倒數(shù)第一個(gè)為 tu1,倒數(shù)第二個(gè)為 tu2
for (int i = 3; i < n;i++ )
{
tu = tu1 + tu2;
tu2 = tu1;
tu1 = tu;
}
Console.WriteLine(tu);
}
//方法三
static void Maink5(string[] args)
{
Console.Write("請(qǐng)輸入月數(shù):");
int m = int.Parse(Console.ReadLine());
int ct = 0;//成兔的對(duì)數(shù)
int xt = 0;//小兔的對(duì)數(shù)
int yt = 1;//
int zt = 1;//
for (int i = 1; i <= m; i++)
{
if (i == 1)
{
ct = 0;
xt = 0;
yt = 1;
}
else
{
ct = xt + ct;
xt = yt;
yt = ct;
}
zt = yt + xt + ct;
Console.WriteLine(i.ToString() + "個(gè)月后成兔的對(duì)數(shù)是:" + ct.ToString());
Console.WriteLine(i.ToString() + "個(gè)月后小兔的對(duì)數(shù)是:" + xt.ToString());
Console.WriteLine(i.ToString() + "個(gè)月后幼兔的對(duì)數(shù)是:" + yt.ToString());
Console.WriteLine(i.ToString() + "個(gè)月后兔子的總對(duì)數(shù)是:" + zt.ToString());
}
Console.ReadLine();
}
eg 2 100以內(nèi)的所有數(shù)的和。
eg3. 求階乘。
eg4.求年齡。
eg5.折紙。
eg6.棋盤放糧食。
eg7.猴子吃桃子。
static void Maink(string[] args)
{
int sum = 1;
for (int i = 0; i < 6; i++)
{
int t = (sum + 1) * 2;
sum = t;
}
Console.WriteLine("桃子一共有:" + sum + "個(gè)。");
}
eg8.落球問(wèn)題。一個(gè)球從10米高度落下,每次彈起2/3的高度,問(wèn)第五次彈起后的高度?
四、while 循環(huán)。一般用在一些死循環(huán)當(dāng)中。
五、try catch。保護(hù)程序,避免程序出錯(cuò)時(shí)無(wú)法運(yùn)行。
格式:
try//快捷方式:雙擊 tab鍵
{
}
catch (Exception)
{
throw;
}
finally
{
}
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
上一篇:C語(yǔ)言統(tǒng)計(jì)字符個(gè)數(shù)代碼分享
欄 目:C語(yǔ)言
下一篇:簡(jiǎn)介C/C++預(yù)處理器的一些工作
本文標(biāo)題:C++學(xué)習(xí)小結(jié)之語(yǔ)句
本文地址:http://www.jygsgssxh.com/a1/Cyuyan/2993.html
您可能感興趣的文章
- 04-02c語(yǔ)言沒(méi)有round函數(shù) round c語(yǔ)言
- 01-10深入理解C++中常見(jiàn)的關(guān)鍵字含義
- 01-10使用C++實(shí)現(xiàn)全排列算法的方法詳解
- 01-10c++中inline的用法分析
- 01-10用C++實(shí)現(xiàn)DBSCAN聚類算法
- 01-10全排列算法的非遞歸實(shí)現(xiàn)與遞歸實(shí)現(xiàn)的方法(C++)
- 01-10C++大數(shù)模板(推薦)
- 01-10深入理解堆排序及其分析
- 01-10淺談C/C++中的static與extern關(guān)鍵字的使用詳解
- 01-10深入C/C++浮點(diǎn)數(shù)在內(nèi)存中的存儲(chǔ)方式詳解


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02c語(yǔ)言函數(shù)調(diào)用后清空內(nèi)存 c語(yǔ)言調(diào)用
- 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
- 04-02c語(yǔ)言的正則匹配函數(shù) c語(yǔ)言正則表達(dá)
- 04-02c語(yǔ)言用函數(shù)寫(xiě)分段 用c語(yǔ)言表示分段
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)
- 04-02c語(yǔ)言編寫(xiě)函數(shù)冒泡排序 c語(yǔ)言冒泡排
- 04-02c語(yǔ)言沒(méi)有round函數(shù) round c語(yǔ)言
- 04-02c語(yǔ)言分段函數(shù)怎么求 用c語(yǔ)言求分段
- 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎
- 04-02c語(yǔ)言調(diào)用函數(shù)求fibo C語(yǔ)言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 04-02jquery與jsp,用jquery
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10delphi制作wav文件的方法


