无法在c#控制台应用程序中同时打印字符串和变量计算

时间:2016-02-24 09:43:26

标签: c# .net visual-studio-2015

我是C#的初学者,试图创建一个控制台应用程序,它接受用户输入并计算它们。我试过评论的方式,但它不起作用,但其余的。请解释 。任何关于更有效地做这件事的建议都值得赞赏。谢谢。

Console.WriteLine("Enter First Digit");
int input1 = int.Parse(Console.ReadLine());

Console.WriteLine("Enter Second Digit");
int input2 = int.Parse(Console.ReadLine());

/* The following code doesn't work.
* Console.WriteLine("Total = " + input1 + input2);
* Console.Readline();
*/

int sum = input1 + input2;
Console.WriteLine("Total = " + sum);
Console.ReadLine();

4 个答案:

答案 0 :(得分:2)

您必须将()放在input1 + input2之间,否则会将其添加为tring。

    Console.WriteLine("Total = " + (input1 + input2));
    Console.ReadLine();

<小时/> 为了完整起见,您应该使用int.TryParse代替int.Parse

TryParse会告诉您string是否可以转换为int。如果用户输入数据不是整数,则下面的代码将正常工作,但您的工作将会中断。

int input1 = 0;
Console.WriteLine("Enter First Digit");
if (!int.TryParse(Console.ReadLine(), out input1))
{
    Console.WriteLine("Your first data is not an interger");
    Console.ReadLine();
    return;
}

int input2 = 0;
Console.WriteLine("Enter Second Digit");
if (!int.TryParse(Console.ReadLine(), out input2))
{
    Console.WriteLine("Your second data is not an interger");
    Console.ReadLine();
    return;
}

Console.WriteLine("Total = " + (input1 + input2));
Console.ReadLine();

答案 1 :(得分:1)

我看到了问题。当你这样做时:

Console.WriteLine("Total = " + input1 + input2);

编译器从左到右读取并首先看到一个字符串,并决定进行字符串连接,因此结果vi可能是:(如果输入1 = 3且输入2是4 :) &#34;总计= 34&#34;

这是因为编译器&#34;翻译&#34;这句话进入

Console.WriteLine("Total = " + input1.ToString() + input2.ToString() );

现在,如果您指示编译器再次思考,您只需在Maths中执行操作,强制编译器将input1 + input2视为单个表达式:

Console.WriteLine("Total = " + (input1 + input2));

我希望有帮助:)

答案 2 :(得分:0)

那里有拼写错误

   /* The following code doesn't work.
     * Console.WriteLine("Total = " + input1 + input2);
     * Console.Readline();
     */

Readline而不是ReadLine()

答案 3 :(得分:0)

首先,你应该使用TryParse,以防用户输入其他数字

Console.WriteLine("Enter First Digit");
if(!int32.TryParse (Console.ReadLine(),out input1))
{
     Console.WriteLine ("Wrong Number!");
}

第二个号码的相同评论

关于你得到的错误,你可以使用string.Format,它会让你的代码更清晰:

Console.WriteLine(string.Format ("Total = {0}", input1 + input2);
Console.Readline();

整个代码:

 static void Main(string[] args)
    {
        Calc();
    }

    static void Calc()
    {
        int input1, input2;
        Console.WriteLine("Enter First Digit");
        if (!Int32.TryParse(Console.ReadLine(), out input1))
        {
            Console.WriteLine("Wrong Number!");
            return;
        }

        Console.WriteLine("Enter Second Digit");
        if (!Int32.TryParse(Console.ReadLine(), out input2))
        {
            Console.WriteLine("Wrong Number!");
            return;
        }


        Console.WriteLine(string.Format("Total = {0}" , input1 + input2));
        Console.ReadLine();
    }