这可能是我到目前为止遇到的最奇怪的错误之一。
private void BUEquals_Click(object sender, EventArgs e)
{
input2 = float.Parse(TBAnswer.Text);
if (choice == 0)
TBAnswer.Text = (input1 + input2).ToString();
else if (choice == 1)
TBAnswer.Text = (input1 - input2).ToString();
TBStored.Text = TBStored.Text + '-' + (input2).ToString();
else if (choice == 2)
TBAnswer.Text = (input1 * input2).ToString();
else
TBAnswer.Text = (input1 / input2).ToString();
input1 = 0;
}
自从我添加了第9行以来,第10行一直在推迟我无法理解的错误。 “else”获得一个红色下划线,表示它是一个无效的表达式术语,“if”获得一个红色下划线,表示预期有一个分号。
有什么想法吗?我老实说在这里什么都没有。提前谢谢!
编辑:好的,事实证明这是我做过的最新秀错误。谢谢您的帮助!想知道自己多长时间才能看到它......答案 0 :(得分:5)
你在第二个案例陈述中缺少{}。
if (choice == 0)
TBAnswer.Text = (input1 + input2).ToString();
else if (choice == 1)
{ // Added
TBAnswer.Text = (input1 - input2).ToString();
TBStored.Text = TBStored.Text + '-' + (input2).ToString();
} // Added
else ...
答案 1 :(得分:2)
您忘记在代码中用括号括起两行。
else if (choice == 1)
TBAnswer.Text = (input1 - input2).ToString();
TBStored.Text = TBStored.Text + '-' + (input2).ToString();
else if (choice == 2)
应该是:
else if (choice == 1) {
TBAnswer.Text = (input1 - input2).ToString();
TBStored.Text = TBStored.Text + '-' + (input2).ToString();
} else if (choice == 2)
答案 2 :(得分:0)
第二个else if
是两行,因此应该在一个块中。
由于您不使用块,编译器会看到if
语句已完成,因为它没有立即跟随,否则如果。
要解决此问题,只需将其他第二个块作为块:
if (choice == 0)
TBAnswer.Text = (input1 + input2).ToString();
else if (choice == 1)
{
TBAnswer.Text = (input1 - input2).ToString();
TBStored.Text = TBStored.Text + '-' + (input2).ToString();
}
else if (choice == 2)
TBAnswer.Text = (input1 * input2).ToString();
else
TBAnswer.Text = (input1 / input2).ToString();
答案 3 :(得分:0)
此处逐行说明,留下可以接受的行
private void BUEquals_Click(object sender, EventArgs e)
{
1: input2 = float.Parse(TBAnswer.Text);
2: if (choice == 0)
3: TBAnswer.Text = (input1 + input2).ToString();
4: else if (choice == 1)
5: TBAnswer.Text = (input1 - input2).ToString();
6: TBStored.Text = TBStored.Text + '-' + (input2).ToString();
第6行可能存在一个问题,即如果需要执行多于1个语句的“if”条件必须使用花括号“{}”包含在块中。
7: **else** if (choice == 2)
第7行存在问题,因为else应始终与IF结合使用。由于您没有对使用条件执行的语句使用括号,因此编译器发现了else语句的问题 -
8: TBAnswer.Text = (input1 * input2).ToString();
else
TBAnswer.Text = (input1 / input2).ToString();
input1 = 0;
}