2013-10-28 118 views
2

對不起,如果這個問題似乎很不好。C程序概念

我無法找出解決此問題的最佳方法。

下面是代碼的基本思想:

int iterator = 0; 

    if ((iterator % 2) == 1){ 
    // do first option 
    iterator++; 
    return; 
    } else if ((iterator % 2) == 0){ 
    // do second thing 
    iterator++; 
    return; 
    } else if ((iterator % 3) == 0){ 
    // do third option 
    iterator++; 
    return; 
    } else{ 
    // error 
    return; 
    } 

本質的功能將被稱爲1次(它是一個卵石watchapp)。

我可以得到前兩個選項的工作,但我有第三個的麻煩。我認爲這是因爲%3太模糊。

你們會怎麼做?

+3

什麼你真的想要嗎? %3毫不含糊。你永遠不會得到它,因爲前兩個選項覆蓋所有數字。 – sashkello

+0

您應在檢查%1之前檢查%3。 – enhzflep

+0

@sashkello基本上它是watchapp將時間分解爲塊並每秒顯示一塊。因此,'一二五'將顯示爲'一''二十五'每秒一個字。對困惑感到抱歉。 – lkemitchll

回答

4

這是你以後在做什麼?

if ((iterator % 3) == 0){ 
    // do first option 
} else if ((iterator % 3) == 1){ 
    // do second thing 
} else if ((iterator % 3) == 2){ 
    // do third option 
} 
iterator++; 

這可以被改寫爲:

switch (iterator++ % 3) { 
case 0: 
    // first option 
    break; 
case 1: 
    // second option 
    break; 
case 2: 
    // third option 
} 
+0

完美謝謝你,我覺得很失望。 – lkemitchll

4

你永遠沒有第三種選擇,因爲迭代%2可以是0或1

1

%2會給你只有兩種選擇。

,你也可以嘗試不同的結構

switch (iterator%3) 
{ 
    case 0: // option 0 
    break; 
    case 1: // option 1 
    break; 
    case 2: // option 2 
    break; 
    default: 
    break; 
} 
++iterator; 
+0

感謝您的回覆,不敢相信我會如此堅持。咖啡是必需的。 – lkemitchll