在永远不满足条件的情况下,循环永远不会发生?

时间:2017-11-17 13:15:15

标签: java loops for-loop arguments conditional-statements

感谢000建议的ans,但我仍然是新手,想知道这个结果背后的概念。任何人都可以明确吗?

0hi
3hello
3world

而不是

0hi
0hello
0world

(假设:num永远不会是++,因为值为0。)

application.args=hi hello world

public static void main (String[] args){
    int num;
    num=0;

    for (String s:args) {
        System.out.println(num+s);
        for(num=0;2>=num;num++);
    }

}

2 个答案:

答案 0 :(得分:1)

如果你想用它打印所有参数和数字,那么修改你的循环

for (String s:args){
System.out.println(num + " " + s);
num++;  // don't write this if you want 0 as the number every time
}

修改 如果你想知道为什么你的代码中的num增加到3,那么

  • 控件首先来到for(String s: args)

  • 然后它将args的第一个值(0索引处的值)复制到s

  • 然后点击System.out.println(num+s);,其中num的打印值仍为零,值为s

  • 现在for(num=0;2>=num;num++);它将增加num直到num ≤= 2所以在for语句后执行你的num值变为3

  • 然后进行外循环的第二次迭代将args的第二个值复制到s

  • 然后打印num(3)和s,这将重复,直到args中的所有值都不被处理

答案 1 :(得分:0)

尝试此代码,如您所希望的输出:0hi 0hello 0world

    int num = 0;
    for (String s : args) {
        //To get array of words data[0] = "hi", data[1] = "hello", data[2] = "world"
        String[] data = s.split(" ");
        //Loop through all words
        for (String element : data) {
            System.out.println(num + element);
        }
    }