我必須撰寫一個回圈,如果一個數字是 3 的倍數,則回傳“Fizz”,如果某個數字集(這里是 15 到 22 之間的數字)是 5 的倍數,則回傳“Buzz”。當我執行代碼時,它只回圈一次并且只回傳“Fizz”,而 15 是 3 和 5 的倍數。我該如何解決這個問題?它需要列印出是 3 的倍數、5 的倍數或兩者兼而有之的數字,并說明它是嘶嘶聲、嗡嗡聲還是兩者兼而有之,謝謝,
class Program
{
static void Main(string[] args)
{
Console.WriteLine(FizzBuzz(15, 22));
}
static string FizzBuzz(int première, int dernière)
{
string message = "";
if (première < dernière)
{
while (première <= dernière)
{
if ( EstDivisiblePar3(première) )
{
message = "Fizz";
return message;
}
if (EstDivisiblePar5(première))
{
message = "Buzz";
return message;
}
première = première 1;
}
}
else
{
message = "? Incohérence des paramètres de FizzBuzz ?.";
}
return message;
}
static bool EstDivisiblePar3(int première)
{
return (première % 3) == 0;
}
static bool EstDivisiblePar5(int première)
{
return (première % 5) == 0;
}
}
uj5u.com熱心網友回復:
把它分解成幾部分!
首先撰寫一個方法來確定要為數字顯示哪個字串。
static string GetString(int n)
{
if (EstDivisiblePar3(n) && !EstDivisiblePar5(n))
{
return "Fizz";
}
if (!EstDivisiblePar3(n) && EstDivisiblePar5(n))
{
return "Buzz";
}
if (EstDivisiblePar5(n) && EstDivisiblePar3(n))
{
return "Fizz Buzz";
}
return n.ToString();
}
現在你的主程式非常簡單:
static void FizzBuzz(int première, int dernière)
{
for ( n = première; n <= dernière; n )
{
var message = GetMessage(n);
Console.WriteLine(message);
}
}
uj5u.com熱心網友回復:
一個簡單的方法是構建一個串列并回傳它:
static List<string> FizzBuzz(int première, int dernière)
{
List<string> messages = new List<string>();
if (première < dernière)
{
while (première <= dernière)
{
bool estDivisiblePar3 = EstDivisiblePar3(première);
bool estDivisiblePar5 = EstDivisiblePar5(première);
if (estDivisiblePar3 && estDivisiblePar5)
{
messages.Add("FizzBuzz");
}
else if (estDivisiblePar3)
{
messages.Add("Fizz");
}
else if (estDivisiblePar5)
{
messages.Add("Buzz");
}
première = première 1;
}
}
else
{
messages.Add("? Incohérence des paramètres de FizzBuzz ?.");
}
return messages;
}
然后你可以像這樣回圈:
foreach (string message in FizzBuzz(15, 22))
{
Console.WriteLine(message);
}
我還建議用while回圈替換你的for回圈:
for (int i = première; i <= dernière; i)
{
bool estDivisiblePar3 = EstDivisiblePar3(i);
bool estDivisiblePar5 = EstDivisiblePar5(i);
if (estDivisiblePar3 && estDivisiblePar5)
{
messages.Add("FizzBuzz");
}
else if (estDivisiblePar3)
{
messages.Add("Fizz");
}
else if (estDivisiblePar5)
{
messages.Add("Buzz");
}
}
網上試試
uj5u.com熱心網友回復:
static string FizzBuzz(int première, int dernière)
{
string message = "";
string message2 = "";
string message3 = "";
string rien = "";
if (première < dernière)
{
while (première <= dernière)
{
if (EstDivisiblePar3(première) && !EstDivisiblePar5(première))
{
message = "Fizz";
Console.WriteLine($"{première} --- {message}");
}
if (EstDivisiblePar5(première) && !EstDivisiblePar3(première))
{
message2 = "Buzz";
Console.WriteLine($"{première} --- {message2}");
}
if(EstDivisiblePar3(première) && EstDivisiblePar5(première))
{
message3 = "FizzBuzz";
Console.WriteLine($"{première} --- {message3}");
}
première = première 1;
}
}
else
{
message = "? Incohérence des paramètres de FizzBuzz ?.";
}
return rien;
}
static bool EstDivisiblePar3(int première)
{
return (première % 3) == 0;
}
static bool EstDivisiblePar5(int première)
{
return (première % 5) == 0;
}
uj5u.com熱心網友回復:
請像這樣修復您的代碼:
static string FizzBuzz(int première, int dernière)
{
string message = "";
if (première < dernière)
{
while (première <= dernière)
{
if (EstDivisiblePar3(première))
{
message = "Fizz";
}
if (EstDivisiblePar5(première))
{
message = "Buzz";
}
première = première 1;
}
}
else
{
message = "? Incohérence des paramètres de FizzBuzz ?.";
}
return message;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/339614.html
