Re: [問題] 用goto寫奇數和

看板C_and_CPP作者 (是嚮往亦或逃避)時間15年前 (2010/08/05 06:11), 編輯推噓2(208)
留言10則, 6人參與, 最新討論串3/4 (看更多)
小弟我以前還蠻喜歡用goto的,雖然很多人都跟我說過不要用goto.... ====================================================== int x = 0, sum = 0; start: printf("Please enter a int : "); scanf("%d",&x); if( x <= 0 ) goto end; while( --x >= 0 ) { if( x % 2 ) sum += x; } printf("odd sum is %d\n", sum ); sum = 0; goto start; end:; ====================================================== goto start 和 end 是個迴圈,只是我把他寫成goto 你要改的是while(--x >= 0)那一段 ====================================================== 真的開始工作在看code寫code的時候,goto是個很煩的東西... ※ 引述《dondon0419 (東東)》之銘言: : 老師上課要我們用goto計算1到輸入數字內的所有奇數和 : 不過不包括輸入的那各奇數 : 像輸入3的話,奇數和是1(不包含3這各奇數) : 輸入4的話.奇數和4 : 上課弄了很久還是跑不出來 : 所以想請教高手幫各忙 : { : int x,sum=1; : scanf("%d",&x); : start: : if ( x % 2 =1 ) : sum = sum + x; : 寫到這邊就卡住了,不知道怎寫x讓他停止在加下去 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.37.166 ※ 編輯: ljhgc 來自: 59.120.37.166 (08/05 14:16)

08/05 14:24, , 1F
所以才會有說, goto盡量別用, 但是一用就是要用在最恰當
08/05 14:24, 1F

08/05 14:24, , 2F
的地方, 這樣不知道是不是還會造成很煩的case....@_@"
08/05 14:24, 2F

08/05 14:25, , 3F
話說我同學說我們學校有個教授叫學生作業要用goto寫
08/05 14:25, 3F

08/05 14:26, , 4F
不能用for XD
08/05 14:26, 4F

08/05 15:58, , 5F
但是有些時候用goto的確能省下不少麻煩, 例如跳出巢狀for的
08/05 15:58, 5F

08/05 15:59, , 6F
時候, 用break只能跳出一層, goto就沒這個限制XD
08/05 15:59, 6F

08/05 16:00, , 7F
層數少可以把旗標加到迴圈條件測試裡, 但是層數多意味
08/05 16:00, 7F

08/05 16:01, , 8F
著你該用遞迴來改寫了...
08/05 16:01, 8F

08/05 19:43, , 9F
有必要用goto嗎?
08/05 19:43, 9F

08/06 09:27, , 10F
=這題用 do while 可以吧
08/06 09:27, 10F
文章代碼(AID): #1CMbOGB4 (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):
文章代碼(AID): #1CMbOGB4 (C_and_CPP)