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

本文关键字:打印 字符串 计算 变量 控制台 应用程序 | 更新日期: 2023-09-27 18:35:55

我是 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();

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

你必须在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();

我看到了问题。执行此操作时:

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

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

这是因为编译器将此语句"翻译"为

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

现在,如果你指示编译器重新思考,你只需像在数学中一样,强制编译器将 input1+input2 视为单个表达式:

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

我希望这对:)有所帮助

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

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

第二个数字的注释相同

关于您得到的错误,您可以使用字符串。格式,它将使您的代码更清晰:

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();
    }

那里有错别字吗

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

阅读行而不是ReadLine()