作者ck940560 (小弼)
看板NTUBIME101HW
標題Re: [問題] 關於C++
時間Mon Sep 29 21:26:50 2008
※ 引述《vincent79715 (軒~)》之銘言:
: 程式碼後面的 system("PAUSE"); 要加嗎?
: 之前自學的時候好像有看到說
: 正式的是不需要加的
: 那交作業的時候要加嗎?
: 請大家幫我解惑
剛剛稍微研究了一下,(應該說是複習@@)
不加system("pause");的話DOS視窗會馬上跳掉,
加了以後會有討厭的請按任意鍵繼續‧‧‧‧‧‧。
所以我就想到了一個方法,
既可以保有原來的畫面,還可以增加程式的可用性,
(說不定會加分唷XD)
那就是用迴圈(Loop)。
迴圈有三種,for loop、while loop和do loop。
for和while最常見,do loop比較少人用。
現在就先挑比較容易的while loop來講。
首先,在定義變數的地方多加一個int i; (不一定要i,也可以是pig)
然後,把要重覆執行的程式(分辨奇偶、相加、換算)放到以下程式碼裡:
int main()
{
while (i<1)
{
//這裡放要重覆執行的程式碼
{
}
記得這時候就可以把system("pause")拿掉了,
否則每次執行動做完都會出現請按任意鍵繼續‧‧‧‧‧‧。
i<1是程式繼續的條件,
這樣寫就表示只要i<1就會一直重複迴圈。
大家一定很納悶,i到底是什麼東西? 連i是多少都不曉得 怎麼知道他有沒有小於1?
沒錯! 這是個好問題。
C++在宣告變數時,會把宣告的變數預設成0,
一般有限次數的迴圈(loop)都會加個i++、i+=1或是i=i+1之類的東西,
是為了要讓決定迴圈是否繼續的i達到停止的條件。(這個程式是i>=1停止)
但是現在我們沒有加,所以i不管迴圈跑了多少次都還是0,
因此寫出來的程式不管重跑多少次都不會停下來。
附上for loop無限迴圈的程式碼,
int main()
{
for (int i=0; i<1; i--)
{
//這裡放要重覆執行的程式碼
}
}
注意! 我for的後面有int i=0,
這也是宣告變數的一種方式,所以前面就不用先宣告i。
祝各位交作業愉快~~
我要去衝微積分了
順啦!~
囧 麤
┌|/
/\
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.136.172.156
※ 編輯: ck940560 來自: 220.136.172.156 (09/29 21:29)
1F:推 naruto1031:要是電腦比較老舊的有可能會當機 09/29 21:41
2F:推 typenephew:為什麼我都看不懂 09/29 21:41
3F:推 zumwohl:沒學過的就會看不懂阿 09/29 21:48
4F:→ ck940560:我家沒有當耶XD 他已經活六年了 最近power開始傾向燒毀 09/29 21:51
※ 編輯: ck940560 來自: 220.136.172.156 (09/29 21:53)
5F:推 sb0917:while(1)即可... 09/29 21:52
6F:→ ck940560:樓上方法測試成功! 09/29 21:54
7F:→ sb0917:不會當機...除非寫第三題...... 09/29 21:54
8F:→ ck940560:第三題用迴圈會有河馬軍團... 09/29 21:55
9F:→ sb0917:我的是一堆鄭先生,我想如果用柏油助教可能會當了我 09/29 22:14
10F:推 zumwohl:我用柏油耶.....完了 09/29 22:26
11F:推 sb0917:沒打"OOO的 燒死你全家"應該就沒事啦~ 09/29 22:27
12F:推 zumwohl:呵我改成我愛c++....有加分吧 09/29 22:28
13F:推 honoYang:不會 我愛死柏油了 有特殊造型可加分 啾咪~~~ 09/30 01:39
14F:→ honoYang:用無限迴圈的話....可能會扣分吧....囧 09/30 01:42
15F:推 hi08060204:"C++在宣告變數時,會把宣告的變數預設成0" @@ really? 09/30 01:57
16F:→ ck940560:我被神懷疑了-.-.....怕怕 09/30 20:34
17F:→ ck940560:至少目前我查到是這樣 09/30 20:34
18F:→ ck940560:測試成功~沒指定的話預設真的是0 09/30 20:46
19F:→ ck940560:不過我的VC++好像快壞掉了@@ 連開新專案都會當機orz 09/30 20:47
20F:推 hi08060204:int i; while(i<1) { }; 按照你說的 會跳進迴圈? 09/30 22:27
21F:→ hi08060204:還是你的意思跟我想的不一樣/ 09/30 22:27
22F:→ ck940560:是這樣沒錯 我測試的時候後面加i++,跑一次就結束 09/30 22:35
23F:→ ck940560:改成i<2的時候會跑兩次 09/30 22:35
24F:→ ck940560:話說我{}後面都沒有加; ...C用習慣了 09/30 22:37
25F:推 hi08060204:好吧 我是DEV 去跑的 跟你敘述的不太一樣 09/30 22:38
26F:→ hi08060204:上面那個分號是多打的 09/30 22:39
27F:→ hi08060204:當我打 int i; while(i){} 反而會無限迴圈 09/30 22:41
28F:→ hi08060204:跟你說的卻是相反@@ 09/30 22:41
29F:推 hi08060204:dev i<1 這條件會不成立 09/30 22:51