找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
尊貴會員無限下載附件搞笑、娛樂、精彩的影片讓你看你準備好成為出色的版主了嗎?
mg國中催眠明日花cosplayfc2kkbox
神奇寶貝怪異與少柳瀬さき問答四疊半書ure 061gvh 403

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

(4月新番)[繁]THE NEW

[繁]怪人的沙拉碗03-

[繁]魔法科高中的劣等

[繁]轉生為第七王子,

女子搧別人耳光的後果

[繁]老夫老妻重返青春
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 1336|回復: 16
打印上一主題下一主題

[問題]我有個愚蠢的問題想問[複製鏈接]

sony.s1984 該用戶已被刪除
跳轉到指定樓層
樓主
發表於 2009-8-25 10:55 AM|只看該作者|倒序瀏覽
關於:

for(),while(),d0...while()

if,else if()

這幾種loop,有沒有個依據可以讓我來確定什麼時候該用哪一個?

我了解它們的意思,但是再寫程式使用時,卻不知道該怎麼下手?

小弟是新加入C\C++的新人,還請版上高手給點意見!
分享分享0收藏收藏0支持支持0
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

帖子
2979
積分
12825 點
潛水值
41478 米
頭香
發表於 2009-8-25 04:00 PM|只看該作者
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。
(1)   for: 通常是你已經得知迴圈要執行幾次時使用
           ex: for(i=0; i< RUN_TIMES; i++) {.....}  總共跑了 RUN_TIMES 次

(2)   while: 通常是不知道迴圈要跑幾次時使用,我舉幾個例子,當然用法絕不只這幾種
            (2.1 )  誤差小於某個數值時
  1.                 int a=10;
  2.                 int b=20;
  3.                            double delta=0.0;
  4.                 while(delta > 0.05){ // 當誤差大於 0.05 時就一直執行 while
  5.                         delta = (double)abs(b-a) / (double)(b);
  6.                         // 以下的 code 都有可能,我舉簡單的 b++; (是沒什麼意義沒錯)
  7.                         b++;
  8.                 }
複製代碼
(2.2 )  不知道使用者輸入幾次時
  1.                 int input = 0; // 計算使用者輸入數值, 999 為跳出條件
  2.                 int sum = 0;  // 計算輸入總合
  3.                 int cnt = 0;   // 計算使用者輸入次數
  4.                             printf(" please input a number(999 to exit):");
  5.                            scanf("%d", &input);
  6.                 while(input!=999)
  7.                 {
  8.                        cnt++;
  9.                        sum = sum + cnt;
  10.                        printf(" please input a number(999 to exit):");
  11.                        scanf("%d", &input);
  12.                 }

  13.                 printf(" sum = %d\n", sum);
  14.                 printf(" cnt = %d\n", cnt);
複製代碼
上面這二個例子說明了,當你不知道迴圈到底該執行幾次時

你可以使用 while ()

(3)   do...while{}: 這個和 while 很像,有一點不同的是,do while 一定會執行一次
           while 卻有可能連一次都不執行,這部份請您自行詳細找例子,也可把你的心得再回 po 上來

(4)  if-else :是條件判斷,並不是loop。同理, if-elseif-elseif-else、 switch 也是條件判斷

(5)  其實用哪種 loop 都是個人習慣,沒有一定的情況一定要用哪種 loop,看個人程式風格吧

          像是 for(; ; )  配合 break; 你也可以把它看作是 while   or do while 的方式

(6)  程式寫多之後,你將會發現哪種情況用哪種 loop 會好些,多寫些吧 , 加油!...
瀏覽完整內容,請先 註冊登入會員
如果我說,灌了二頁的水是因為lag / 系統不穩,
我想應該也不會有人相信吧..
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

sony.s1984 該用戶已被刪除
3
發表於 2009-8-25 04:28 PM|只看該作者
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。
下載: 訪客無法瀏覽下載點,請先 註冊登入會員
goodbye_mylove


很謝謝你的回覆,我會多多努力的!!!
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php

使用道具檢舉

帖子
0
積分
0 點
潛水值
30 米
4
發表於 2009-8-25 05:30 PM|只看該作者
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。
倒數
While
  1.     int a=5;
  2.     while(a>0)
  3.     {
  4.       
  5.         a--; // a=a-1
  6.         cout << a << endl;
  7.     }
複製代碼
for
  1. int a;
  2.     for(a=5;a>0;a--)
  3.     {
  4.         cout << a << endl;
  5.     }
複製代碼
...
瀏覽完整內容,請先 註冊登入會員
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。

使用道具檢舉

帖子
0
積分
30 點
潛水值
8790 米
5
發表於 2009-8-27 01:31 AM|只看該作者
其實沒有說一定要用哪一個,只是說情況不同有些比較方便、有些比較麻煩而已!




分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

Rank: 2Rank: 2

帖子
87
積分
213 點
潛水值
5447 米
6
發表於 2009-8-30 10:01 AM|只看該作者
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。
其實for跟while的差別真的不大...基本上兩種可以完全互相取代~~
二樓已經說的很清楚了0.0"
不過有個差別是如果是C++compiler的話for理面可以直接宣告多個變數,可以讓變數的生命週期縮短,減少一些不必要的問題發生~~
其他就看個人習慣囉~~

使用道具檢舉

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

帖子
2979
積分
12825 點
潛水值
41478 米
7
發表於 2009-8-30 05:32 PM|只看該作者
若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。
下載: 訪客無法瀏覽下載點,請先 註冊登入會員
small2kuo


> 不過有個差別是如果是C++compiler的話for理面可以直接宣告多個變數,
> 可以讓變數的生命週期縮短,減少一些不必要的問題發生~~

small2kuo 大大 指的是 register 的用法嗎? :)
如果我說,灌了二頁的水是因為lag / 系統不穩,
我想應該也不會有人相信吧..

使用道具檢舉

Rank: 2Rank: 2

帖子
87
積分
213 點
潛水值
5447 米
8
發表於 2009-9-1 01:58 AM|只看該作者
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。
感覺也不太是耶XD"
是說想了一下...我覺得我說的話也怪怪的就是了= ="

我主要想表達的只是說
for裡面可以這樣寫for(int a,b,c,d;;)
while好像不行宣告那麼多變數而已XD"

register雖然也是可以用在宣告短週期變數的時機
不過用途好像不怎麼大0.0"

我的將生命週期縮短的好處,指得應該是比較能夠將各個區段獨立開來吧...
...
瀏覽完整內容,請先 註冊登入會員
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

Rank: 1

帖子
109
積分
199 點
潛水值
2623 米
9
發表於 2009-9-2 11:59 AM|只看該作者
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。
這幾個東東我就不解釋他的意思了,其他的人都解釋的很好了,就我個人在寫程式的感覺,for 跟 while 或是do while其實是一模一樣的東西,沒有說非要用哪個不可,有時候覺得用哪個比較直觀,那就用哪一個,其實這三個彼此之間可以算是互通的,總歸就是叫你一直做同一件事,做到不合條件為止。
不過說到生命週期,loop有一個很有趣的規則,在loop裡宣告的變數,一離開loop就死翹翹了,我一直覺得這個實在很有趣,我非常喜歡這樣用,不為別的,就好玩而已  :P...
瀏覽完整內容,請先 註冊登入會員
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。

使用道具檢舉

Rank: 2Rank: 2

帖子
170
積分
546 點
潛水值
13474 米
10
發表於 2009-9-2 04:16 PM|只看該作者
do while和while我覺得不一樣,do while是迴圈裡的東西必定會執行一次,在某些情況下是很好用的。

for和while就真的可以互換了,不過如果已知迴圈次數的話大多都會用for




若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com

使用道具檢舉

adarkair 該用戶已被刪除
11
發表於 2009-9-2 08:57 PM|只看該作者
聽說,同樣的for及while(就是指2者做出來的結果一樣時)while可以快一點
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。

使用道具檢舉

tommy790506 該用戶已被刪除
12
發表於 2009-9-3 02:32 PM|只看該作者
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com
我怎麼聽說是for比較快= =

有高手可以現身說法嗎??
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com

使用道具檢舉

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

帖子
2979
積分
12825 點
潛水值
41478 米
13
發表於 2009-9-3 04:39 PM|只看該作者
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。
我是沒聽說過 for, while 哪個快

我只有聽說過  "判斷語句"  用  "否定句先"  有機會快一點點
如果我說,灌了二頁的水是因為lag / 系統不穩,
我想應該也不會有人相信吧..
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。

使用道具檢舉

Rank: 1

帖子
142
積分
70 點
潛水值
13612 米
14
發表於 2009-9-3 10:11 PM|只看該作者
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com
個人覺得~迴圈沒有太大的差別~先熟悉一種最重要~
while(條件){內容} ≡ for (不給;條件;不給){內容}
for(起始;條件;動作){內容} ≡ while(條件){起始 內容  動作}
do{內容}while(條件);  ≡  while(1){條件}    /*條件不符合則break*/
所有的迴圈都是通用的~只是看你喜歡用哪一種~如果你想追求速度~就如同樓上說的~要掌握好條件才是關鍵

...
瀏覽完整內容,請先 註冊登入會員
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com

使用道具檢舉

Rank: 1

帖子
142
積分
70 點
潛水值
13612 米
15
發表於 2009-9-3 10:12 PM|只看該作者
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。
個人覺得~迴圈沒有太大的差別~先熟悉一種最重要~
while(條件){內容} ≡ for (不給;條件;不給){內容}
for(起始;條件;動作){內容} ≡ while(條件){起始 內容  動作}
do{內容}while(條件);  ≡  while(1){條件}    /*條件不符合則break*/
所有的迴圈都是通用的~只是看你喜歡用哪一種~如果你想追求速度~就如同樓上說的~要掌握好條件才是關鍵

...
瀏覽完整內容,請先 註冊登入會員





成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部