如何调试C#方法没有返回预期值的原因?

时间:2017-12-15 05:18:04

标签: c#

我正在参加C#课程,我认为我知道如何做到这一点,但我猜不是。无论如何,它要我做这些事情:

  

首先声明一个本地int magicNumber变量并使用myNumber输入参数中的值初始化它。然后,您需要进行一系列计算,其中每个计算都使用magicNumber变量中的当前值,并将结果存储回同一个变量中。

     

将magicNumber的当前值乘以3并将结果存储回magicNumber   将6添加到magicNumber的当前值,并将结果存储回magicNumber   将magicNumber的当前值除以3并将结果存储回magicNumber   从magicNumber的当前值中减去原始myNumber输入,并将结果存储回magicNumber

这是我的代码。

private int findMagicNumber(int myNumber)
{
    // replace with student code
    return 0; //What is this???
    int magicNumber;
    magicNumber = magicNumber * 3;
    magicNumber = magicNumber + 6;
    magicNumber = magicNumber / 3;
    magicNumber = magicNumber - myNumber;

}

2 个答案:

答案 0 :(得分:2)

private int findMagicNumber(int myNumber)
 {
        int magicNumber = myNumber;
        magicNumber = magicNumber * 3;
        magicNumber = magicNumber + 6;
        magicNumber = magicNumber / 3;
        magicNumber = magicNumber - myNumber;
        return magicNumber;
 }

答案 1 :(得分:2)

您应该注意的一些事情是:

  • 您在return之后编写的代码永远不会执行,因此findMagicNumber方法将始终返回0
  • 变量magicNumber从未初始化,因此默认情况下其值为0
  • 选择一个随机数来初始化你的幻数会更有意义。

简而言之,您的签名将如下所示:

public static Random rndSeed = new Random();
public static int findMagicNumber(int myNumber)
{
    int magicNumber = rndSeed.Next(1,100);
    magicNumber = magicNumber * 3;
    magicNumber = magicNumber + 6;
    magicNumber = magicNumber / 3;
    magicNumber = magicNumber - myNumber;
    return magicNumber;
}

调用这样的方法:

Console.WriteLine("Try 1 :- {0} is my number, Magic Number will be {1}", 12,findMagicNumber(12));
// sample OutPut - Try 1 :- 12 is my number, Magic Number will be 63

以下是example