0

我对 c# 真的很差我只有 c# 的基本知识我有这段代码但我不能让它工作 probelly 调试器说问题在这里http://puu.sh/2h2wV代码在这里这是我抱歉,这可能是一个如此简单的错误,我有其他代码是真的,是我的旧程序 :(

  Console.WriteLine("Sisesta esimene arv vahemikus 10-20");
            vastus1 = int.Parse(Console.ReadLine());
            Console.WriteLine("sisesta teine arv vahemikus 20-32");
            vastus2 = int.Parse(Console.ReadLine());
            Console.WriteLine("Vastus {0}", vastus2 - vastus1);

            string tekst1 = Console.ReadLine();
            vastus3 = int.Parse(tekst1);   <------ debugger says problem is here
        }
        while ((vastus1 < 1 || vastus2 < 12));

        if (vastus3 >= 3 && vastus3 >= 5) 
        {
            Console.WriteLine("On Kevad");

                {
                    if (vastus3 >= 6 && vastus3 >= 8) 
                    {
                        Console.WriteLine("on suvi");
                    }
                }
                if (vastus3 >= 9 && vastus3 >= 11) 
                {
                    Console.WriteLine("on sügis");
               }
                if (vastus3 >= 11 && vastus3 >= 2) 
                {
                    Console.WriteLine("on talv");
                }
            }

        }
    }
}
4

2 回答 2

4

好吧,错误说明了一切

The input string was not in the right format

在您正在做的事情的上下文中,这意味着您在控制台中输入的任何内容int.Parse都不能被解析为 int。

如果您希望有时输入到控制台的内容不是数字,您可以使用int.TryParse它来确定它是否有效。

int vastus3 = 0;
while(!int.TryParse(Console.ReadLine(),out vastus3 ))
{
    Console.WriteLine("Invalid number, try again!");
}
// here "vastus3" will have your integer

这可以准确地进入您的代码中您当前失败的行所在的位置。

于 2013-03-13T16:53:23.547 回答
0

Jamiec 的解释是正确的。如果您要查找的整数总是以相同的格式出现在字符串的末尾,您可以使用 Substring 来获取特定字符,然后进行比较检查。

这是一个关于如何使用 Substring 从字符串末尾删除字符的示例。

从字符串的末尾子串一个字符串

还有msdn

http://msdn.microsoft.com/en-us/library/system.string.substring%28v=vs.71%29.aspx

于 2013-03-13T17:03:33.400 回答