所以我得到了我的代码来处理更多关于Java的问题,以及为什么它以我得到它的方式工作。为什么它没有按我写的第一种方式工作。这是我写的原始代码。
private void renderGUIExtraLives (SpriteBatch batch){
float x = GUIcamera.viewportWidth - 50 - Constants.LIVES_START * 50;
float y = -15;
for (int i = 0; i < Constants.LIVES_START; i++) {
if (worldController.lives <= i) {
batch.setColor(0.5f, 0.5f, 0.5f, 0.5f);
batch.draw(Assets.instance.bunny.head, x + i * 50, y, 50, 50, 120, 100, 0.35f, -0.35f, 0);
batch.setColor(1, 1, 1, 1);
}
}
}
这没有用,它没有丢错,但它没有把画面画给画面,我所做的就是删除if语句的大括号,如下所示:
private void renderGUIExtraLives (SpriteBatch batch){
float x = GUIcamera.viewportWidth - 50 - Constants.LIVES_START * 50;
float y = -15;
for (int i = 0; i < Constants.LIVES_START; i++) {
if (worldController.lives <= i)
batch.setColor(0.5f, 0.5f, 0.5f, 0.5f);
batch.draw(Assets.instance.bunny.head, x + i * 50, y, 50, 50, 120, 100, 0.35f, -0.35f, 0);
batch.setColor(1, 1, 1, 1);
}
}
现在神奇地它起作用了,有人可以解释为什么它从嵌套的if语句中删除花括号之后起作用了吗?我真的很感激,如果有人在Stack上有类似问题或答案的链接,那么关于这个主题的任何讨论都会很棒。
答案 0 :(得分:3)
你的缩进是错误的和误导性的。如果在$("#filter1").change(function() {
var inputCS = $(this).val();
var title = $('body').data('title');
if(inputCs.length >= 1) {
var data = {
inputCS: inputCS,
title: title
};
$.ajax({
type: "POST",
url: ROOT_URL + "default/update/data",
data: data,
dataType: 'json',
timeout: 3000,
success: function(results){
// ...
},
error: function() {
//
}
});
}
});
之后删除括号,则只有条件执行下一个语句。这意味着代码基本上是:
if
应该清楚为什么它会神奇地起作用&#34;现在,它只是无条件地吸引。