Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

c++的問題再一問...(追問篇)

0 views
Skip to first unread message

小雪

unread,
Aug 4, 2000, 3:00:00 AM8/4/00
to
※ 引述《skyfor...@bbs.au.edu.tw (搬家回家找老婆)》之銘言:
> ※ 引述《chick...@bbs.ntit.edu.tw (小雪)》之銘言:
> 這個程式沒有你想像中複雜
> 第二個應該是所謂的成立條件,也就是讓迴圈繼續跑下去的條件
> 只要這個條件成立 (不為0)迴圈就會執行
> 所以,只要n不是0,迴圈就會跑...
> 再這裡這個迴圈會跑三次.
> > 這樣我覺得for迴圈沒理由會跑呀!
> > 再來就是第三個的n--,既然跳出迴圈的條件是n本身,
> > 那n--是把自己愈變愈小,這樣程式照理說應該會無限的跑下去不是嗎??
> 進去ㄉn是3,然後2...1...0...到0ㄉ時候條件不成立..所以跳出..
> > 這個地方一直看不懂,請大家幫忙解答一下!!感激不盡........


若是這樣我就又產生問題了,
意思說是指for迴圈也可以變成這樣 for( ; 0; n-- )嗎??
可是在這個程式裡

#include <iostream.h>

int main()
{
int b,e,r;
cout << "Enter base: ";
cin >> b;
cout << "Enter exponent: ";
cin >> e;

r=1;
for( ; e; e-- ) r=r*b;

cout << "Result: " << r << endl;

return 0;
}

如果我把迴圈裡第二個條件的e直接改成0的話,也就是for( ; 0; e-- )
為什麼程式就不能正確執行了呢??
有點打破沙鍋問到底的感覺...........抱歉!!
希望前輩也能回答這個問題!謝謝
--
[1;32m※ Origin: [33m碧海藍天 [37m<bbs.ntit.edu.tw> [m
[1;31m◆ From: [36m203.79.189.67 [m

GoGo~~

unread,
Aug 4, 2000, 3:00:00 AM8/4/00
to
: 若是這樣我就又產生問題了,

: 意思說是指for迴圈也可以變成這樣 for( ; 0; n-- )嗎??
: 可是在這個程式裡
: #include <iostream.h>
: int main()
: {
: int b,e,r;
: cout << "Enter base: ";
: cin >> b;
: cout << "Enter exponent: ";
: cin >> e;
: r=1;
: for( ; e; e-- ) r=r*b;
: cout << "Result: " << r << endl;
: return 0;
: }
: 如果我把迴圈裡第二個條件的e直接改成0的話,也就是for( ; 0; e-- )
: 為什麼程式就不能正確執行了呢??
: 有點打破沙鍋問到底的感覺...........抱歉!!
: 希望前輩也能回答這個問題!謝謝

for迴圈的第二個參數(執行條件判斷)一般是放booling運算式..

而c中0表false 1表true~~~

所以當你直接放零~~代表整個迴圈一定不能執行^^

如果改成 for( ; e>=0; e--) 就okㄌ~~~:p

用最簡單的方式寫程式~~~

何必寫一堆要讓自己腦筋轉好幾圈才會了解的東東!?

--
[m [1;33;46m〒作者:MCasper 來自:LB2-163.D13-219.ncu.edu.tw [m
[1;36m◎中央資工二進位的世界 [37m【140.115.50.50‧binary.csie.ncu.edu.tw

CITY HUNTER

unread,
Aug 4, 2000, 3:00:00 AM8/4/00
to
==> 於 小雪 (chick...@bbs.ntit.edu.tw) 文中述及:
: ※ 引述《skyfor...@bbs.au.edu.tw (搬家回家找老婆)》之銘言:

: > ※ 引述《chick...@bbs.ntit.edu.tw (小雪)》之銘言:
: > 這個程式沒有你想像中複雜
: > 第二個應該是所謂的成立條件,也就是讓迴圈繼續跑下去的條件
: > 只要這個條件成立 (不為0)迴圈就會執行
: > 所以,只要n不是0,迴圈就會跑...
: > 再這裡這個迴圈會跑三次.
: > > 這樣我覺得for迴圈沒理由會跑呀!
: > > 再來就是第三個的n--,既然跳出迴圈的條件是n本身,
: > > 那n--是把自己愈變愈小,這樣程式照理說應該會無限的跑下去不是嗎??
: > 進去ㄉn是3,然後2...1...0...到0ㄉ時候條件不成立..所以跳出..
: > > 這個地方一直看不懂,請大家幫忙解答一下!!感激不盡........
: 若是這樣我就又產生問題了,
: 意思說是指for迴圈也可以變成這樣 for( ; 0; n-- )嗎??
: 可是在這個程式裡
: #include <iostream.h>
: int main()
: {
: int b,e,r;
: cout << "Enter base: ";
: cin >> b;
: cout << "Enter exponent: ";
: cin >> e;
: r=1;
: for( ; e; e-- ) r=r*b;
: cout << "Result: " << r << endl;
: return 0;
: }
: 如果我把迴圈裡第二個條件的e直接改成0的話,也就是for( ; 0; e-- )
: 為什麼程式就不能正確執行了呢??
: 有點打破沙鍋問到底的感覺...........抱歉!!
: 希望前輩也能回答這個問題!謝謝
for(1;2;3)~~第2個是條件直有兩種~~~
1.被定義範圍的值如e>3,e!=-1,e<3,e!=null,(e+r)<r,.....
2.不可以是null或0 如0
了了嗎???
我思必我行~~~~~
--
[mΞ Origin: 逢甲蒼穹資訊網 <bbs.fcu.edu.tw> [FROM: pce-d04.pcroom.]

風清揚

unread,
Aug 5, 2000, 3:00:00 AM8/5/00
to
※ 引述《chick...@bbs.ntit.edu.tw (小雪)》之銘言:
: ※ 引述《skyfor...@bbs.au.edu.tw (搬家回家找老婆)》之銘言:

: > 這個程式沒有你想像中複雜
: > 第二個應該是所謂的成立條件,也就是讓迴圈繼續跑下去的條件
: > 只要這個條件成立 (不為0)迴圈就會執行
: > 所以,只要n不是0,迴圈就會跑...
: > 再這裡這個迴圈會跑三次.
: > 進去ㄉn是3,然後2...1...0...到0ㄉ時候條件不成立..所以跳出..

: 若是這樣我就又產生問題了,
: 意思說是指for迴圈也可以變成這樣 for( ; 0; n-- )嗎??
: 可是在這個程式裡
: #include <iostream.h>
: int main()
: {
: int b,e,r;
: cout << "Enter base: ";
: cin >> b;
: cout << "Enter exponent: ";
: cin >> e;
: r=1;
: for( ; e; e-- ) r=r*b;
: cout << "Result: " << r << endl;
: return 0;
: }
: 如果我把迴圈裡第二個條件的e直接改成0的話,也就是for( ; 0; e-- )
: 為什麼程式就不能正確執行了呢??
: 有點打破沙鍋問到底的感覺...........抱歉!!
: 希望前輩也能回答這個問題!謝謝

如果照你改的那r=r*b不會執行因為一開始測試條件就為FALSE了(0)

--
[1;36m※Post by [37mhorserider [36mfrom [33mas19po101.ht.ficnet.net. [m
[1;34m▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂ [m
[1;36m東吳溪城bbs站 [31m˙ [33m電子佈告欄系統 [31m˙ [32mbbs.scu.edu.tw [31m˙ [37m163.14.2.15 [m
[1;34m▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ [m

0 new messages