[問題] if vs else if

看板C_and_CPP作者 (聽說 侯佩岑是豬頭)時間15年前 (2010/11/04 00:46), 編輯推噓1(109)
留言10則, 5人參與, 最新討論串1/1
我自己練習玩一個畫圖形,我要畫兩個菱形 以下是我的程式碼, 我在住解 // this line的地方如果有else if... 就可以正確畫出兩個菱形,如果沒有else, 只有if.... 圖形就錯誤,可是我跟上面一個if的區域沒有重疊,為何會錯誤 請教高手!! 感謝 (用ubuntu,不好選字有錯字請見諒) #include <stdio.h> #include <stdlib.h> #include <iostream> using namespace std; #define size 11 // define 的後面不能加上 ; int main(int argc, char *argv[]) { int mid = (size+1)/2; // if size=31, mid=16 for(int i=1;i<=size;i++) { printf("%2d ",i); for(int j=1;j<=2*size;j++) { if(i<=mid) { if(j>=mid-i+1 && j<=mid+i-1) cout << "*"; else if(j>=mid+size-i+1 && j<=mid+size+i-1) cout << "*"; // this line ,withous else coz error !! else cout << " "; } else { int k=mid*2-i; if(j>=mid-k+1 && j<=mid+k-1) cout << "*"; else if(j>=mid+size-k+1 && j<=mid+size+k-1) cout << "*"; // this line else cout << " "; } } cout << endl;} } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.85.133.185

11/04 00:50, , 1F
因為你後面那個 else 在兩種寫法的作用會不一樣
11/04 00:50, 1F

11/04 00:50, , 2F
兩層 for 我就 game over 了...Orz
11/04 00:50, 2F

11/04 00:50, , 3F
呃else if改成if的話就變成"兩組"if了吧?
11/04 00:50, 3F

11/04 00:52, , 4F
看你想寫什麼去決定怎麼寫,而不是寫了再想說怎麼會錯?
11/04 00:52, 4F

11/04 00:52, , 5F
但是兩個if的範圍是不一樣的呀
11/04 00:52, 5F

11/04 00:53, , 6F
最後那個 else 的東西跑出來了啦
11/04 00:53, 6F

11/04 00:55, , 7F
喔 本來有畫,後來被最後的else 蓋掉了, 我耍笨了 ><
11/04 00:55, 7F

11/04 00:55, , 8F
感謝大家
11/04 00:55, 8F

11/04 00:56, , 9F
love大得了不能看到多層迴圈的病XD
11/04 00:56, 9F

11/04 00:58, , 10F
只有兩層for loop.....還沒很多拉 (汗)
11/04 00:58, 10F
文章代碼(AID): #1CqP7_VV (C_and_CPP)