提问人:IKU Brontide 提问时间:5/6/2020 更新时间:5/6/2020 访问量:1210
使用带有 if 语句的布尔变量?
Using a boolean variable with an if statement?
问:
我目前正在尝试制作一个基本的点击器游戏,开始自学如何做 C#,我已经能够解决这部分的大多数问题,但还没有。对,不是,我正在编写一个可购买的升级,该升级可以自行赚钱,我想我已经失败了,但是其中一个if语句存在错误,我不知道如何修复它。还有人知道我做错了什么吗?
法典:
private int a = 0;
private void flatButton1_Click(object sender, EventArgs e)
{
a++;
flatTextBox1.Text = a.ToString($"Knowledge: {a}");
}
private void flatButton2_Click(object sender, EventArgs e)
{
if (a >= 50)
{
bool upgrade1 = true;
}
if (upgrade1 == true)
{
for ( ; ; )
{
a = a + (a++ * 2);
}
}
唯一给出错误的是 if(upgrade1 = true),upgrade1 是错误,它说名称“upgrade1”在当前上下文中不存在。
答:
1赞
RmD
5/6/2020
#1
在编写代码时,您必须记住作用域。您的代码不起作用的原因是,if 语句检查 upgrade1 是否为 true,甚至不知道变量 upgrade1 是否存在。您必须将变量定义移出一个作用域,以便 if 语句检查知道您在说什么。希望这有帮助!
这应该可以解决您的问题:
private void flatButton2_Click(object sender, EventArgs e)
{
bool upgrade1;
if (a >= 50)
{
upgrade1 = true;
}
else
{
upgrade1 = false;
}
if (upgrade1 == true)
{
for ( ; ; )
{
a = a + (a++ * 2);
}
}
}
1赞
qqqqqkks
5/6/2020
#2
这是因为您在第一个 if 语句中定义了 upgrade1,因此第二个语句无法访问它。
将代码更改为:
private int a = 0;
private void flatButton1_Click(object sender, EventArgs e)
{
a++;
flatTextBox1.Text = a.ToString($"Knowledge: {a}");
}
private void flatButton2_Click(object sender, EventArgs e)
{
bool upgrade1;
if (a >= 50)
{
upgrade1 = true;
}
if (upgrade1 == true)
{
for ( ; ; )
{
a = a + (a++ * 2);
}
}
}
评论
1赞
IKU Brontide
5/6/2020
谢谢你们俩,先试第一个,然后试第二个,我很感激!
2赞
Rhday Parikh
5/6/2020
#3
您已在第一个 IF 语句的作用域中声明了变量“upgrade1”,因此它只能在该 IF 语句中使用。您需要全局声明“upgrade1”变量。(在 IF 语句之外
private int a = 0;
private void flatButton1_Click(object sender, EventArgs e)
{
a++;
flatTextBox1.Text = a.ToString($"Knowledge: {a}");
}
private void flatButton2_Click(object sender, EventArgs e)
{
bool upgrade1 =false;
if (a >= 50)
{
upgrade1 = true;
}
if (upgrade1 == true)
{
for ( ; ; )
{
a = a + (a++ * 2);
}
}
评论