for循环中的嵌套if语句[JAVA / LibGDX]

时间:2017-05-21 21:47:41

标签: java for-loop if-statement nested

所以我得到了我的代码来处理更多关于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上有类似问题或答案的链接,那么关于这个主题的任何讨论都会很棒。

1 个答案:

答案 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;现在,它只是无条件地吸引。