2017-06-20 84 views
-2

我怎麼降低這個代碼我怎樣才能reudce數量如果要是statments 2

for (int i = 1; i < number;i++) 
{ 

    if (i % 3 == 0 && i % 5 != 0) 
    { 
     Console.WriteLine(i + " Fizz"); 
    } 
    else if (i % 5 == 0 && i % 3 != 0) 
    { 
     Console.WriteLine(i + " Buzz"); 
    } 
    else if(i % 3 == 0 && i % 5 == 0) 
    { 
     Console.WriteLine(i + " FizzBuzz"); 
    } 

    else 
    { 
     Console.WriteLine(i); 
    } 
} 
+0

如果這將是巨大的[格式化你的代碼第一次](https://stackoverflow.com/posts/44653219/edit) –

+0

嘗試使用'switch'語句來代替'if-else' –

+0

有大量的示例代碼示例fizzbuzz解決方案,我建議你看看他們。此外,[codereview.se] – Sayse

回答

0

你可以嘗試有條件的經營者的if語句的數量。

(i % 3 == 0) 
? (i % 5 == 0) 
    ? Console.WriteLine(i + " FizzBuzz") 
    : Console.WriteLine(i + " Fizz"); 
: (i % 5 == 0) 
    ? Console.WriteLine(i + " Buzz"); 
    : Console.WriteLine(i); 
2

你可以做到以下幾點:

for (int i = 1; i < number;i++) 
{ 
    Console.WriteLine(string.Format("{0} {1}{2}", i, i % 3 == 0 ? "Fizz":"", i % 5 == 0 ? "Buzz":""); 
} 

而且不使用,如果;-)

0
string output = i % 3 == 0 
        ? (i % 5 != 0 ? $"{i} Fizz" : $"{i} FizzBuzz") 
        : i % 5 == 0 && i % 3 != 0 
         ? $"{i} Buzz" 
         : i.ToString(); 
    Console.WriteLine(output); 
1

變量和conditional operator有助於使代碼更易讀:

for (int i = 1; i < number;i++) 
{ 
    bool isMod3 = i % 3 == 0; 
    bool isMod5 = i % 5 == 0; 
    string fizz = isMod3 ? "Fizz" : ""; 
    string buzz = isMod5 ? "Buzz" : ""; 
    string result = $"{i} {fizz}{buzz}"; 
    Console.WriteLine(result); 
} 

這是另一個ap proach隨着更值(理論上umlimited)工作原理:

var modDict = new Dictionary<int, string> { { 3, "Fizz" }, { 5, "Buzz" } }; 
for (int i = 1; i < number; i++) 
{ 
    string text = string.Join("", modDict.Select(kv => i % kv.Key == 0 ? kv.Value : "")); 
    Console.WriteLine(i + " " + text); 
} 
0

嘗試:

string str; 
for (int i = 1; i < number; i++) 
{ 
    str = i + " "; 
    if (i % 3 == 0) 
     str += "Fizz"; 
    if (i % 5 == 0) 
     str += "Buzz"; 

    Console.WriteLine(str.Trim()); 
} 
2
for (int i = 1; i < number;i++) 
{ 
    string result = i + " "; 
    if (i % 3 == 0) 
    { 
     result += "Fizz"; 
    } 
    if (i % 5 == 0) 
    { 
     result += "Buzz"; 
    } 
    Console.WriteLine(result); 
} 

這將顯示例如1_3 Fizz5 Buzz15 FizzBuzz

請參見下面的JavaScript等價的代碼片段:

var number = 20; 
 
for (var i = 1; i < number;i++) 
 
{ 
 
    var result = i + " "; 
 
    if (i % 3 == 0) 
 
    { 
 
     result += "Fizz"; 
 
    } 
 
    if (i % 5 == 0) 
 
    { 
 
     result += "Buzz"; 
 
    } 
 
    document.write(result+"<br>"); 
 
}

0

我們可以像下面,但它不利於可讀性

for (int i = 1; i < number; i++) 
     { 
      var x = i % 3 == 0; 
      var y = i % 5 == 0; 

      string istr = i.ToString(); 
      string a = x ? (y ? istr + " FizzBuzz" 
           : istr + " Fizz") 
          : (y ? istr + " Buzz" 
           : istr); 
      Console.WriteLine(a); 
     }