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