【问题标题】:Returning an int from a method, and text input in c# [closed]从方法返回一个int,并在c#中输入文本[关闭]
【发布时间】:2015-04-02 03:29:57
【问题描述】:

我只是很困惑,需要一些帮助。我真的不知道在 numCheck 方法中返回 num 是怎么回事。我的老师说它现在应该看起来如何,所以返回了什么,我该如何使用它?我正在尝试制作一个程序来询问数学问题的答案(例如 2 + 2),如果用户输入为 4,它会结束,但它会再次询问其他任何问题。这应该需要5分钟,我只是不明白他的意思。谢谢!

namespace readNumber
{
    class Program
    {
        static void Main(string[] args)
        {
              //should be a loop around this method call
              //for(......)
                numCheck();

            Console.ReadLine();
        }

        static int numCheck()
        {
            bool itWorked;
            int num;

            do
            {
                Console.Write("Enter a Number: ");
                string numSt = Console.ReadLine();
                Console.WriteLine(numSt);
                itWorked = int.TryParse(numSt, out num);

                if (itWorked)
                {
                    Console.WriteLine("Integer assigned: " + num);  
                }
                else
                {
                    Console.WriteLine("It Failed");
                }
            }
            while (!itWorked);

            return num;
        }
    }
}

每当我尝试在主程序中使用 num 时,我得到最多的错误是“名称“num”在当前上下文中不存在”

【问题讨论】:

  • 为我工作,没有错误。还有其他代码吗?
  • 我没有发现任何问题。错误应该告诉你哪一行..

标签: c# loops text input return


【解决方案1】:

我会回答这个问题:

返回了什么以及如何使用它?

numCheck方法的返回值num只是用户输入的数字,实际上该方法一直循环直到用户输入一个有效数字,然后中断 do-while 循环和返回 num

现在,您可以直接使用checkNum 从用户那里获取号码。 示例:

Console.WriteLine("What is 2+2 ?");
int ans = checkNum();

if(ans == 4)
{
  Console.WriteLine("Yes ! that is correct");
}
else
{
  Console.WriteLine("No!, false answer");
}

【讨论】:

    【解决方案2】:

    您尚未在 main 中定义任何名为 num 的变量。

    为了使用从checkNum() 返回的值,您需要将它分配给一个变量,就像@chouaib 在解决方案中一样。

    你的主要应该是这样的

        static void Main(string[] args)
        {
              int num;
              //should be a loop around this method call
              //for(......)
              num = numCheck();
    
            Console.ReadLine();
        }
    

    【讨论】:

    • 谢谢!我不知道你必须在主程序中再次声明 num,它现在工作得很好
    猜你喜欢
    • 2015-08-13
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多