C# 如果(Integer Console.Readline”或null)不';行不通
我无法理解在搜索和搜索之后(你知道它是如何运行的)为什么这个代码不起作用 我只是想让它像这样工作C# 如果(Integer Console.Readline”或null)不';行不通,c#,C#,我无法理解在搜索和搜索之后(你知道它是如何运行的)为什么这个代码不起作用 我只是想让它像这样工作 if (Nummer == "") { Console.WriteLine("0"); } 就这样,它不起作用了。我已经找了一个半小时了。我不明白为什么会有一个简单的基本解释。我只找到了如何用字符串或其他东西来修复它,然后我尝试转换它,但仍然无法工作。有人能帮我吗 我感谢你对我有限的知识的耐心。谢谢你的时间 static void Main(string[] args) { boo
if (Nummer == "") {
Console.WriteLine("0");
}
就这样,它不起作用了。我已经找了一个半小时了。我不明白为什么会有一个简单的基本解释。我只找到了如何用字符串或其他东西来修复它,然后我尝试转换它,但仍然无法工作。有人能帮我吗
我感谢你对我有限的知识的耐心。谢谢你的时间
static void Main(string[] args)
{
bool herhaal = true;
do
{
Console.Write("Geef een getal : ");
int Nummer = Convert.ToInt16(Console.ReadLine());
if (Console.ReadLine() == "" && Console.ReadLine() == null)
{
Console.WriteLine("0");
}
double kw = Math.Pow(Nummer, 2);
Console.WriteLine("Kwadraat van {0} is: {1}", Nummer, kw + Environment.NewLine);
} while (herhaal);
}
要从WinForms应用程序执行此操作,请按照注释中的尝试:
private void button1_Click(object sender, EventArgs e)
{
double aantalgroep;
if (!double.TryParse(textBox1.Text, out aantalgroep))
{
textBox1.Text = "0";
}
else
{
double kw = Math.Pow(aantalgroep, 2);
textBox1.Text = String.Format("Kwadraat van {0} is: {1}", aantalgroep, kw);
}
}
要从WinForms应用程序执行此操作,请按照注释中的尝试:
private void button1_Click(object sender, EventArgs e)
{
double aantalgroep;
if (!double.TryParse(textBox1.Text, out aantalgroep))
{
textBox1.Text = "0";
}
else
{
double kw = Math.Pow(aantalgroep, 2);
textBox1.Text = String.Format("Kwadraat van {0} is: {1}", aantalgroep, kw);
}
}
,Console.ReadLine
执行以下操作
从标准输入流中读取下一行字符
这意味着每次调用控制台.ReadLine
,都会从控制台读取新行。从我在代码中看到的情况来看,这不是您想要的行为。要解决问题,您应该将Console.ReadLine
的结果存储在变量中,并使用该变量而不是ReadLine方法。,Console.ReadLine
执行以下操作
从标准输入流中读取下一行字符
这意味着每次调用控制台.ReadLine
,都会从控制台读取新行。从我在代码中看到的情况来看,这不是您想要的行为。要解决您的问题,您应该将Console.ReadLine
的结果存储在一个变量中,并使用该变量而不是ReadLine方法。Console.ReadLine()方法“读取”一行用户输入,并存储在您分配给它的变量中。给你
因此,下面的代码行读取您输入并存储在numer
中的数字
int Nummer = Convert.ToInt16(Console.ReadLine());
但是,接下来您要在if
语句中再执行两次Console.ReadLine()
方法调用,因此if
语句真正做的是尝试从控制台再读取两次,看看第一次读取是否为”
,第二次读取是否为null
,这不是你想要的行为
你想做的是读一次,然后比较你读的东西。按代码看,您似乎希望输出用户输入的数字的平方,因此您可能应该检查的不仅仅是numer==“”
,因为如果用户输入字母字符,也会导致错误。因此,使用int.TryPrase()
对您来说是一个更好的选择
static void Main(string[] args)
{
bool herhaal = true;
do
{
Console.Write("Geef een getal : ");
string Nummer = Console.ReadLine();
if (int.TryParse(Nummer, out int result))
{
double kw = Math.Pow(result, 2);
Console.WriteLine("Kwadraat van {0} is: {1}", Nummer, kw + Environment.NewLine);
herhaal = false;
}
else
{
Console.WriteLine("0");
}
} while (herhaal);
Console.ReadLine();
}
Console.ReadLine()
方法“读取”一行用户输入,并存储在您分配给它的变量中。给你
因此,下面的代码行读取您输入并存储在numer
中的数字
int Nummer = Convert.ToInt16(Console.ReadLine());
但是,接下来您要在if
语句中再执行两次Console.ReadLine()
方法调用,因此if
语句真正做的是尝试从控制台再读取两次,看看第一次读取是否为”
,第二次读取是否为null
,这不是你想要的行为
你想做的是读一次,然后比较你读的东西。按代码看,您似乎希望输出用户输入的数字的平方,因此您可能应该检查的不仅仅是numer==“”
,因为如果用户输入字母字符,也会导致错误。因此,使用int.TryPrase()
对您来说是一个更好的选择
static void Main(string[] args)
{
bool herhaal = true;
do
{
Console.Write("Geef een getal : ");
string Nummer = Console.ReadLine();
if (int.TryParse(Nummer, out int result))
{
double kw = Math.Pow(result, 2);
Console.WriteLine("Kwadraat van {0} is: {1}", Nummer, kw + Environment.NewLine);
herhaal = false;
}
else
{
Console.WriteLine("0");
}
} while (herhaal);
Console.ReadLine();
}
您正在调用
ReadLine()
三次。这读起来有三行。不确定,但您可能想尝试的是if(String.IsNullOrEmpty(numer)){Console.WriteLine(“0”);}
和@SLaks是正确的,这也可能会导致您的问题。为什么不把我只想让它像这样工作到实际的代码中呢?您正在调用ReadLine()
三次。这是三行。不确定,但您可能想尝试的是如果(String.IsNullOrEmpty(numer)){Console.WriteLine(“0”)}
和@SLaks是正确的,这也可能会导致您的问题。为什么不把我只想让它像这样工作到您的实际代码中呢?非常感谢。如果我不在控制台中,只是在表单应用程序中,语法是否相同?因为我现在正忙于aantalgroep=double.Parse(textBox1.Text);如果(aantalgroep==null){textBox1.Text=“0”}
因为这不起作用,我将尝试您在这里对我的其他代码所做的操作。这与我的代码不完全相同。在表单应用程序中,没有控制台
对象,而且在(true)
循环时也不会编写。相反,您有一个带有click
事件处理程序的按钮,还有一个文本框,您可以在其中检查Text
属性。此外,像int
和double
这样的基本类型永远不会为空。您仍然应该使用TryParse()
,就像我在这个答案中显示的那样,并检查该函数的结果。非常感谢。如果我不在控制台中,只是在表单应用程序中,语法是否相同?因为我现在正忙于aantalgroep=double.Parse(textBox1.Text);如果(aantalgroep==null){textBox1.Text=“0”}
因为这不起作用,我将尝试您在这里对我的其他代码所做的操作。这与我的代码不完全相同。在表单应用程序中,没有控制台
对象,而且在(true)
循环时也不会编写。相反,您有一个带有click
事件处理程序的按钮,还有一个文本框,您可以在其中检查Text
属性。此外,像int
和double
这样的基本类型永远不会出现