输入 if 语句,尽管不满足条件
Entering If Statement Despite Not Meeting Condition
这是一个
特定的问题,但我似乎无法弄清楚出了什么问题。
else if (X == 2)
//move left
{
if (Level[X-1][Y] == 0);
{
cout << Level[X-1][Y] << "n";
cout << "n MOVING LEFT from RIGHTn"; //PROBLEM IS HERE
Level[X][Y] = 1; // block it
X = X - 1;
moved = 1;
}
}
我正在做的是检查 Level[X-1][Y] 是否为 1,表示一列,所以我无法将我的玩家移动到那里。但是,由于某种原因,尽管它是 1 而不是 0(如输出所示),仍可访问 IF 语句。任何帮助将不胜感激。
你的问题在这里:
if (Level[X-1][Y] == 0);
^
;
结束 if 语句。if 语句后面的内容只是一个复合语句,如下所示:
{
//Code
}
并且本身完全有效并且有许多用途,其中一个用途是创建块范围。
为了完整起见,如果我们转到表达式语句6.2
C++标准部分的草案,我们看到;
只是终止了一个 null 语句。语法如下:
expression-statement:
expressionopt ;
^
它还说:
[...]缺少表达式的表达式语句称为 null 语句。[...]
分号!!
if (Level[X-1][Y] == 0);
if (Level[X-1][Y] == 0);
// ^
去掉这个分号。
它会使逻辑如下:如果Level[X-1][Y]
为零,则不执行任何操作,然后运行以下代码(您认为属于if
的复合语句)。它相当于:
if (Level[X-1][Y] == 0)
{
;
}
{
cout << Level[X-1][Y] << "n";
cout << "n MOVING LEFT from RIGHTn";
Level[X][Y] = 1;
X = X - 1;
moved = 1;
}
相关文章:
- C++ 即使不满足条件,循环也会终止
- Craps游戏在循环不满足退出条件时执行
- C++ while 循环在满足条件后不会退出
- 使用逻辑 AND (&&) 时,如何以编程方式查看C++中不满足哪些条件?
- 如何在不使用循环或迭代器的情况下检查所有列表元素并在满足条件时删除一个
- 当条件不满足时,必须返回输入
- 即使满足条件,C++do-while 循环也不会退出
- 即使不满足条件,也会重置文本文件.(C++)
- boost::asio::async_read在不满足完成条件的情况下结束
- 如何确保在不满足条件时不运行特定代码
- 输入 if 语句,尽管不满足条件
- 我正在尝试清除数据文件中具有某些条件的特殊字符,但这些条件不满足
- 满足条件时 for 循环不会结束
- 如果不满足条件,我应该在成员函数中返回什么?
- 如果条件不满足,调用函数时会出现编译时错误
- 为什么一旦不满足条件,这个做同时循环就不会爆发?
- Qt QTreeView -当条件不满足时恢复到以前的选择
- 而Loop不满足条件
- 如果不满足条件时触发语句?
- while 循环在满足条件时不会终止 (c++)