2016-12-28 259 views
-10

如何使用switch條件語句而不是if來編寫此程序?顯示1到100之間的所有7的倍數的程序C++

#include <iostream> 
using namespace std; 
int main() 
{ 
    int i; 
    for (i = 1; i <= 100; i++) { 
     if ((i % 7 == 0) && (i > 0)) { 
      cout << i << endl; 
     } 
    } 

    return 0; 
} 
+1

'開關(I){情況7:殼體14:殼體21:/ *等... * /;打破;默認:/ *所有其他* /'? –

+4

你爲什麼要使用'switch'? 'if'陳述完全合理。 –

+0

@Someprogrammerdude不需要你知道並列出所有可被7整除的數字嗎?如果我要求您爲所有<10000的數字編寫相同的程序,您的答案就會變得...累贅。 –

回答

-1

給你:

#include <iostream> 

int main() 
{ 
    for (int i = 1; i<=100; i++) 
    { 
     switch(i % 7) 
     { 
      case 0: 
       std::cout << i << std::endl; 
       break; 
      default: 
       break; 
     } 
    } 
    return 0; 
} 

在線編譯:http://ideone.com/uq8Jue

0

這聽起來像你是一個switch語句有點陌生。 switch語句就像if-else語句,只是它不是布爾參數。所以本質上它問:告訴我的價值。然後對每個案例(可能的結果),它有一個後續行動。

所以你想問一下:告訴我數字的值,模數7.如果它是零,請在計數器中加1。如果它是1,那麼。

所以代碼應具有一般結構:

Switch(i%7): 
    Case 0{increment counter or display to std. out or store in array} 
    Case 1{other action} 
+0

_「一個開關語句就像一個if-else語句」_不是真的,不是 –

+0

@LightnessRacesin如果你閱讀的話,那麼它就很好,這裏有一個解釋......我試圖爲某人簡化它。更精細的細節並不像概念那麼重要。 –

+0

這是我遇到困難的概念。把switch語句看作「像if-else語句」這樣的想法可能會導致濫用它,因爲這不是它的目的。 –

相關問題