android变量不会在循环内递增

时间:2015-09-02 16:39:46

标签: java android loops operators increment

我正在尝试编写一个简单的Android程序,它将以下列格式在墙上打印99瓶啤酒的歌词。

第1行:墙上有99瓶啤酒......

第2行:墙上有98瓶啤酒......

等等。

我正在尝试创建一个循环来打印第一行歌词,然后递增/递减变量“lineNumber”,“numOfBottles”和“lessNumOfBottles”。

我尝试了一些不同的方法和操作符,但是我的变量在编译时永远不会改变,我在每一行歌词中得到相同的重复数字。

我做错了什么? (评论中的底部循环是我尝试过的第一个循环,我只留下它作为我自己的参考)

protected void onResume(){
    super.onResume();


    int lineNumber = 1;
    int numOfBottles = 99;
    int lessNumOfBottles = 98;
    String line = "Line " + lineNumber + ":\n";
    String lyrics= "Lyrics to 99 bottles of beer \n\n";
    String song =line +  numOfBottles + " bottles of beer on the wall," + numOfBottles + " bottles of beer, take one down, pass it around," + lessNumOfBottles + " bottles of beer on the wall.\n\n";


    TextView textview = (TextView) findViewById(R.id.myTextView);

    textview.setText(lyrics);

    for(int i = 99;i >= 1;i--) {
        if (numOfBottles >= 1) {
            textview.append(song);
            --numOfBottles;
            --lessNumOfBottles;
            ++lineNumber;
        }
    }

    /*for (int i=0;i<99;){
        lineNumber++;
        numOfBottles= --numOfBottles;
        lessNumOfBottles= --lessNumOfBottles;
        textview.setText(song);
        textview.append(song);
        i++;
    }*/
}

1 个答案:

答案 0 :(得分:0)

您只将字符串的值分配给lineNumbernumOfBottleslessNumOfBottles的第一个值。 <{1}}和line变量永远不会更新。

请改为尝试:

song