我正在搞乱C#并且正在制作一个原型GUI(没有附加游戏,只是弄乱了按钮和按钮颜色).我遇到了一个错误:
private void temperValue_Load(object sender, EventArgs e)
{
int temperInt = 23;
temperInt = Convert.ToInt32(temperValue.Text);
if (temperInt >= 70)
{
temperButton.BackColor = System.Drawing.Color.Red;
}
else if (temperInt >= 40 & <= 69)
{
temperButton.BackColor = System.Drawing.Color.DarkOrange;
}
}
Run Code Online (Sandbox Code Playgroud)
在"else if"行中,"<="和"69"都有错误."<="错误是"无效的表达式术语'<='","69)"的四个错误是")预期的","无效的表达式术语')'",以及两个"预期的"错误.
此代码片段之外没有任何变量影响此代码.调用的每个变量都在片段内定义.
(对于任何好奇的人,"脾气"代表"温度")
你不能在你的布尔条件下采取快捷方式.
else if (temperInt >= 40 & <= 69)
Run Code Online (Sandbox Code Playgroud)
必须写成:
else if (temperInt >= 40 && temperInt <= 69)
Run Code Online (Sandbox Code Playgroud)
请注意,进行布尔比较时,通常需要使用双&符号&&.这会导致短路(如果左侧成功,则仅评估两侧),这通常是所需的.正如我所说,你需要同时包含temperInt标识符 - 你不能说"某个变量大于一个值而不是另一个变量",就像在SQL BETWEEN子句中一样.
更新:根据Eric的建议修正了答案.