Re: [問題] 條件式判斷
※ 引述《loveme00835 (最愛朴素妍)》之銘言:
: 用 while 搭配 goto 可以達成 if 的效果
: while( /*condition*/ )
: {
: // actions
: goto LABEL;
: }
: 不過這招很噁心, 我只用來實現 break 的功能.
: 另外要藉助的還是「Table Driven Approach」這方法,
: 1.把不同的 case 分成函式來做判斷, 他們都擁有相同的 sig-
: nature
: 2.函式指標儲存在陣列裡, 這樣就可以用迴圈來取代落落長的
: if-else敘述
: 使用此法的好處是判斷的邏輯依然保留在程式碼內, 規則做更改也不
: 必另外想新的公式.
: 程式碼: http://codepad.org/Gjd0opqG
: 嫌巢狀迴圈太深也可以抽出來再寫一個函式, 這是用執行時間換取可
: 讀性、擴充性的方法, 不過太簡單的例子反而有割雞用牛刀的感覺.
小弟我還想說大家都沒看到題目有說要nested loop....XD
這是用while加上個flag直接模擬寫了連續if/else if/else的噁心情況Orz
// 假設grade[]存成績, level[]存等第, 都經過適當init過....
for(int i=0; i<10; ++i)
{
int flag = 1;
while(flag && grade[i] >= 90)
{
level[0]++;
flag = 0;
}
while(flag && grade[i] >= 80)
{
level[1]++;
flag = 0;
}
while(flag && grade[i] >= 70)
{
level[2]++;
flag = 0;
}
while(flag && grade[i] >= 60)
{
level[3]++;
flag = 0;
}
while(flag)
{
level[4]++;
flag = 0;
}
}
==
對不起, 小弟心血來潮胡搞一下, 請大大們鞭輕一點....Q_Q~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.134.18.177
→
02/11 01:02, , 1F
02/11 01:02, 1F
推
02/11 01:10, , 2F
02/11 01:10, 2F
→
02/11 01:17, , 3F
02/11 01:17, 3F
※ 編輯: VictorTom 來自: 220.134.18.177 (02/11 09:04)
討論串 (同標題文章)