Bob*_* G. 0 java user-interface
所以我正在制作一个记忆类型的游戏,问题是程序没有输入if语句,即使我知道它检查的值是相等的,因为我在if语句之前打印了两个值.它们都是1.我知道if语句因此而满足/为真.我知道它没有进入循环,因为我在循环中放置了一个print语句,并且没有看到控制台显示if语句.因此,我将发布一小段代码 - 我认为相关的代码,因为如果我发布整个代码,人们会生气.如果您需要整个代码,请告诉我,我会发布.无论如何,我打印到我的控制台的是:
1
1
注意声明如何:"圆形完成".什么时候应该没有.
这是代码:
else {
System.out.println(++numberOn);
System.out.println(currentPattern.size());
if (++numberOn==currentPattern.size()) {
System.out.println("Round finished.");
score++;
numberOn=0;
displayPattern();
}
else {
numberOn++;
}
}
Run Code Online (Sandbox Code Playgroud)
该程序正在100%输入这个大/第一个语句,否则前两个语句将不会运行.所以我需要知道为什么当双方彼此相等时,if语句第4行没有运行.提前致谢.
++numberOn不会简单地返回numberOn加一的值.它还增加了实际值numberOn.当你这样做时System.out.println(++numberOn),你要添加一个值numberOn 并打印它.当你以后这样做时++numberOn,你将另外一个添加到变量然后比较该值.所以做numberOn + 1的,而不是++numberOn,除非你真正的意思是变异的变量.
作为旁注,这就是为什么许多人(包括我自己)倾向于主张只++在自己的行上进行操作.所以
++numberOn;
if (numberOn == ...) { ... }
Run Code Online (Sandbox Code Playgroud)
我想你会把它复制粘贴++numberOn到print语句中,而不是考虑增加两次的含义.这是一个容易犯的错误,因此在自己的生产线上进行此类操作将最大限度地降低风险并使突变更加明显.
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |