C#控制台应用程序错误-无法识别/正确评估返回的int

切兹郡

我试图了解方法的工作原理,我以为我已经失望了,但似乎我不喜欢我的RunSelect();。方法没有达到我的期望。在第19行,我要求用户选择值(1或2)并将其作为int返回(运行)。然后在第25行上,根据所选的int执行if / if else / else语句。无论选择了什么,都不会识别int并要求用户再次尝试-不管我输入什么内容,都无法识别它,因此我的控制台方法失败了,而且我不确定自己在做什么。

我尝试跟踪我的代码,将其打印出来进行分析,并花了一夜时间在上面睡觉。等。我迷失了为什么它不起作用。我是新手,非常感谢您的帮助。我不认为问题出在我的循环或方法上,我认为这是我将int传递给if语句的方式。但是我迷失了为什么它没有像我想的那样起作用。

谢谢大家的帮助

这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace a032_Factorial_Fibonacci_Sequencer
{
class Program
{
    String command = "";

    //Need to get the runSelect to work as method

    public void Play()
    {
        Announcer("+ + + Welcome To MegaCorps Factorial Fibioci Sequencer + + +\n\n");

        int run = 0;

        do
        {
            RunSelect(run);

            if (run == 1) { RunFact(); }
            else if (run == 2) { RunFib(); }
            else
            {
                Announcer("Non Valid Selection"); 
                RunSelect(run);
            }

            Announcer("Enter 'Y' to Run another sequence? ");

            command = Console.ReadLine().ToLower().Trim();
        }
        while (command == "y" || command == "yes");
    }



    //HelperMethods

    public String Announcer(String strTxt)
    {
        Console.WriteLine(strTxt);
        return strTxt;
    }

    public int RunSelect(int run)
    {
        Announcer("Enter '1' to run Factor | Enter '2' to run Fibioci");
        run = int.Parse(Console.ReadLine());
        return run;
    }

    public void Closer()
    { Console.Read(); }

    public void RunFact()
    {
        //craft program to factor a number entered and return factor
        //use double not int to handle factored numbers larger then 57+
        Console.WriteLine("Factorial Sequencer Entered/n/n");

        Announcer("Enter A Number to FACTOR: ");
        double num = double.Parse(Console.ReadLine());

        double numNew = 1;

        for (int i = 1; i <= num; i++)
        { numNew = numNew * i; }

        Announcer("\nFACTORED result: " + numNew);
    }


    public void RunFib()
    {
        //craft program to fib a number entered and return fib
        //use double not int to handle factored numbers larger then 57+
        Console.WriteLine("Fibioci Sequencer Entered\n");

        Announcer("Enter A Number to FIBIOC: ");
        double iSequence = double.Parse(Console.ReadLine());

        Announcer("\nFIBIOC result: ");

        double iPrevious = -1;
        double iNext = 1;

        for (int i = 1; i <= iSequence; i++)
        {
            double iSum = iNext + iPrevious;
            iPrevious = iNext;
            iNext = iSum;

            Console.Write(iNext + ", ");
        }
    }





    static void Main(string[] args)
    {
        Program myProgram = new Program();
        myProgram.Play();
    }
}
}
苏达卡·蒂拉普迪(Sudhakar Tillapudi)

问题:您没有存储方法的返回值RunSelect()

解决方案:您需要存储RunSelect()Method的返回值,否则变量run值将不会被修改(即使在调用RunSelect()method之后仍然为零)。

替换为:

RunSelect(run);

有了这个:

run=RunSelect(run);

编辑:如果您正在调用返回某项内容的方法,则您需要读取/存储该return方法值,因为它包含修改后的值。

步骤1:在代码中,您已run使用以下语句初始化了变量

int run = 0;

第2步:在内部do-while循环中,您调用RunSelect()了以下方法:

    do
    {
        RunSelect(run);
         ------

步骤3:在该方法中,RunSelect()您将使用以下语句run变量分配实际的用户输入console

注意:这里RunSelect()方法中的运行变量是该方法的局部变量,因此即使您为其赋值,run也不会反映到函数中run声明的变量中Play()

public int RunSelect(int run)
    {
        Announcer("Enter '1' to run Factor | Enter '2' to run Fibioci");
        run = int.Parse(Console.ReadLine());/here you are assigning userinput to run variable.
        return run;
    }

步骤4:您将修改后的变量值发送回run此方法的调用方(RunSelect()):

步骤5:您不会再将方法return发送的值RunSelect()再次存储run变量中,如下所示:

RunSelect(run);

因此仍然run变量将具有初始化值zero

要使其正常工作,您只需存储方法的返回值,RunSelect()如下所示:

run=RunSelect(run);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法在控制台应用程序中使用位图

来自分类Dev

从控制台应用程序返回字符串

来自分类Dev

C#控制台应用程序错误-无法识别/正确评估返回的int

来自分类Dev

Fiddler无法检测到来自C#控制台应用程序的肥皂请求

来自分类Dev

无法运行DNX控制台应用程序

来自分类Dev

如何在C#控制台应用程序中返回简单的int值

来自分类Dev

如何从控制台应用程序返回List <string>?

来自分类Dev

控制台应用程序无法打开命令窗口

来自分类Dev

C#控制台应用程序:主方法返回值VS Application.ExitCode

来自分类Dev

从控制台应用程序显示Winform的正确方法

来自分类Dev

字符串未从C#控制台应用程序正确传递到VBS

来自分类Dev

无法在C#控制台应用程序中添加System.Drawing命名空间

来自分类Dev

NET C#控制台应用程序未正确检测到按键

来自分类Dev

如何通过用户输入(控制台应用程序)使用带有C#中的List的IndexOf方法自动递增int userid?

来自分类Dev

无法在控制台应用程序中使用位图

来自分类Dev

无法将已执行命令的输出存储在文件C#控制台应用程序中

来自分类Dev

Int和Float最大值C#的控制台应用程序输入验证

来自分类Dev

C ++控制台应用程序使其他CMD窗口无法接受控制台输入

来自分类Dev

Fiddler无法检测到来自C#控制台应用程序的肥皂请求

来自分类Dev

C#控制台应用程序:在用户输入有效数据之前,如何继续返回错误消息?

来自分类Dev

C#控制台应用程序exe文件无法启动

来自分类Dev

Windows 8.1中无法打印C#控制台应用程序

来自分类Dev

错误CS0019:运算符'<='无法应用于c#控制台应用程序中类型'double'和'decimal'的操作数

来自分类Dev

无法将控制台应用程序连接到应用程序见解

来自分类Dev

当计时器从 C# 控制台应用程序中的其他类停止时如何返回主程序

来自分类Dev

C++ CLR 控制台应用程序 [无法解决 Directory::GetCurrentDirectory C3374]

来自分类Dev

c#: Log4Net 控制台应用程序无法根据日志级别和崩溃创建控制台颜色

来自分类Dev

C# 控制台应用程序无法读取辅助 App.config

来自分类Dev

C# 控制台应用程序 - 为什么我的私有方法设置的属性值都被返回

Related 相关文章

  1. 1

    无法在控制台应用程序中使用位图

  2. 2

    从控制台应用程序返回字符串

  3. 3

    C#控制台应用程序错误-无法识别/正确评估返回的int

  4. 4

    Fiddler无法检测到来自C#控制台应用程序的肥皂请求

  5. 5

    无法运行DNX控制台应用程序

  6. 6

    如何在C#控制台应用程序中返回简单的int值

  7. 7

    如何从控制台应用程序返回List <string>?

  8. 8

    控制台应用程序无法打开命令窗口

  9. 9

    C#控制台应用程序:主方法返回值VS Application.ExitCode

  10. 10

    从控制台应用程序显示Winform的正确方法

  11. 11

    字符串未从C#控制台应用程序正确传递到VBS

  12. 12

    无法在C#控制台应用程序中添加System.Drawing命名空间

  13. 13

    NET C#控制台应用程序未正确检测到按键

  14. 14

    如何通过用户输入(控制台应用程序)使用带有C#中的List的IndexOf方法自动递增int userid?

  15. 15

    无法在控制台应用程序中使用位图

  16. 16

    无法将已执行命令的输出存储在文件C#控制台应用程序中

  17. 17

    Int和Float最大值C#的控制台应用程序输入验证

  18. 18

    C ++控制台应用程序使其他CMD窗口无法接受控制台输入

  19. 19

    Fiddler无法检测到来自C#控制台应用程序的肥皂请求

  20. 20

    C#控制台应用程序:在用户输入有效数据之前,如何继续返回错误消息?

  21. 21

    C#控制台应用程序exe文件无法启动

  22. 22

    Windows 8.1中无法打印C#控制台应用程序

  23. 23

    错误CS0019:运算符'<='无法应用于c#控制台应用程序中类型'double'和'decimal'的操作数

  24. 24

    无法将控制台应用程序连接到应用程序见解

  25. 25

    当计时器从 C# 控制台应用程序中的其他类停止时如何返回主程序

  26. 26

    C++ CLR 控制台应用程序 [无法解决 Directory::GetCurrentDirectory C3374]

  27. 27

    c#: Log4Net 控制台应用程序无法根据日志级别和崩溃创建控制台颜色

  28. 28

    C# 控制台应用程序无法读取辅助 App.config

  29. 29

    C# 控制台应用程序 - 为什么我的私有方法设置的属性值都被返回

热门标签

归档