看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《kkkkdragon (呆呆)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : C++ : 問題(Question): : 如何將for的雙層迴圈變成goto : 程式碼(Code):(請善用置底文網頁, 記得排版) : for(j=1; j<=5; j=j+1) { : printf("%d:",j); : for(i=0; i<j; i=i+1) { : printf("%c",A1[i]); : } : 補充說明(Supplement): 首先,你的 code 本身有問題,少了一個 } 而且排版很亂 = =; 初步整理一下,你的 code 應該是這樣 for (j = 1; j <= 5; j++) { printf("%d:", j); for ( i = 0; i < j; i++) { printf("%c", A1[i]); } } ===================================== 要將 for 改成 goto for 通常形式長這樣 for (stmt1; stmt2; stmt3) { } 其中, stmt1 是迴圈前的初始化 stmt2 是進入回圈的判斷條件 stmt3 是 counter 的變化量 stmt1; lable: if ( stmt2 ) { //迴圈內容 stmt3; goto lable; } 意思是,我先執行 stmt1 初始一些變數,然後判斷是否符合 stmt2 的條件 如果符合,執行迴圈內容,接著 stmt3 我的 counter 有一些變化量運算 之後回到 lable 所以說你的 code 可能可以改成這樣... http://nopaste.csie.org/09015 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.60.107.233
ericinttu:推一下解說文. 06/01 10:15
flydragon198:推認真,不過這種作業應該google查一下就會寫了 06/01 10:42
angleevil:雖然發問者心態不對,但是讓我又學到一招,大推 06/01 10:48
a5480277:推彩色版 06/01 14:11
battle7:雖然發問者心態不對,但是讓我又學到一招,大推+1 06/01 16:42
loveme00835:@_@ 06/02 00:34
pichubaby:大推 06/02 01:13
VictorTom:(發卡) [好人] XD 06/03 01:47
xatier:Q_____Q 06/03 08:02
angleevil:不過說實話,我很不愛goto.所以幾乎不知道怎麼用 06/03 08:32
xatier:樓上強者都用longjmp() 06/03 08:46
angleevil:longjmp是什麼?長跳?這個我也不會. 06/03 10:00
xatier:一個可以從深層遞迴地獄跳出來的工具XD 06/03 13:01
firejox:setimp.h -->標準函式庫之一 06/03 18:22
VictorTom:小弟我只會用debugger跳XD 然後常跳錯跟著程式就當了Orz 06/03 18:40
firejox:神奇的是longjmp似乎不支持返回0 XD 06/03 20:26
loveme00835:setimp.h ← 這根本不是標準, 連鬼影都看不到 06/03 21:35
firejox:筆誤 = = setjmp.h 06/03 22:06
angleevil:我很乖,書本說少用goto和longjmp.所以我不會 06/04 19:21
angleevil:其實是能力不到,淚奔QQ 06/04 19:22