FizzBuzz 测试用例通过
FizzBuzz test case pass
我想知道有人可以告诉我这个 FizzBuzz 哪里出了问题。
我得到一个错误“不是所有代码 returns 一个值并且正在努力找出如何修复它。
我的代码如下:
for (int i = 0; i < input; i++)
{
if (i % 3 == 0)
{
Console.WriteLine("Fizz");
}
else if (i % 5 == 0)
{
Console.WriteLine("Buzz");
}
else if (i % 3 == 0 && i % 5 == 0)
{
Console.WriteLine("FizzBuzz");
}
else
{
Console.WriteLine(i);
}
}
测试用例是这样的:
[Test]
public void Test1()
{
var solution = new Solution();
Assert.AreEqual(solution.PrintFizzBuzz(15), "FizzBuzz");
}
not all code returns a value
意味着你的方法声明了 return 类型而不是 void
但你没有从你的方法中 returning 任何东西。案例一:
int Add(int a, int b)
{
int c = a + b;
// no return specified would through the same error
}
首先,正如其他人所说,并非所有代码都存在,因此我们很难提供帮助。不过我还是会试试的。
当用 Assert.AreEqual
测试时,函数 PrintFizzBuzz
应该 return 一些东西,在本例中是字符串 "FizzBuzz"。但是,如果您使用 Console.WriteLine
方法,它将 return 什么都没有。 Console.Writeline
方法会将字符串打印到控制台,但控制台实际上不是 'program',它只是用于可视化一些事情,例如日志记录或调试。
所以要解决您的问题,您应该使用 return
而不是 Console.Writeline
并让您的方法 PrintFizzBuzz
return 一个字符串而不是将其作废并将其打印到控制台.在这种情况下重命名您的方法可能也更好,因为它不再打印 FizzBuzz。
您的代码还有另一个问题,那就是当您输入 15 时,它会打印出 "Fizz",因为您所做的支票是模 3 和 15 % 3 = 0。您应该反过来订购支票, 从具体到不太具体。
returning 字符串的示例是:
string SomeMethod()
{
return "Some String"
}
我想知道有人可以告诉我这个 FizzBuzz 哪里出了问题。
我得到一个错误“不是所有代码 returns 一个值并且正在努力找出如何修复它。
我的代码如下:
for (int i = 0; i < input; i++)
{
if (i % 3 == 0)
{
Console.WriteLine("Fizz");
}
else if (i % 5 == 0)
{
Console.WriteLine("Buzz");
}
else if (i % 3 == 0 && i % 5 == 0)
{
Console.WriteLine("FizzBuzz");
}
else
{
Console.WriteLine(i);
}
}
测试用例是这样的:
[Test]
public void Test1()
{
var solution = new Solution();
Assert.AreEqual(solution.PrintFizzBuzz(15), "FizzBuzz");
}
not all code returns a value
意味着你的方法声明了 return 类型而不是 void
但你没有从你的方法中 returning 任何东西。案例一:
int Add(int a, int b)
{
int c = a + b;
// no return specified would through the same error
}
首先,正如其他人所说,并非所有代码都存在,因此我们很难提供帮助。不过我还是会试试的。
当用 Assert.AreEqual
测试时,函数 PrintFizzBuzz
应该 return 一些东西,在本例中是字符串 "FizzBuzz"。但是,如果您使用 Console.WriteLine
方法,它将 return 什么都没有。 Console.Writeline
方法会将字符串打印到控制台,但控制台实际上不是 'program',它只是用于可视化一些事情,例如日志记录或调试。
所以要解决您的问题,您应该使用 return
而不是 Console.Writeline
并让您的方法 PrintFizzBuzz
return 一个字符串而不是将其作废并将其打印到控制台.在这种情况下重命名您的方法可能也更好,因为它不再打印 FizzBuzz。
您的代码还有另一个问题,那就是当您输入 15 时,它会打印出 "Fizz",因为您所做的支票是模 3 和 15 % 3 = 0。您应该反过来订购支票, 从具体到不太具体。
returning 字符串的示例是:
string SomeMethod()
{
return "Some String"
}