我不明白为什么要做这个动作?我只需要解释一下

时间:2015-03-31 02:28:33

标签: java loops while-loop

我只需要向我解释一些事情。当我们声明整数时我的想法是,只要它在开头就宣布它并不重要,所以我用这一小段代码打印出一个乘法表。

import java.util.Scanner;
public class Learn {
    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        int last = 5;
        int i = 1;
        while (i <= last){
           int j = 1;
           while (j <= last) {               
               System.out.print(i*j);
               System.out.print(" " );
               j = j + 1;
           }
           System.out.println();
           i = i + 1;
       }
   }
}

打印出来。

1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 5 10 15 20 25

但如果我采用int j = 1;我把它放在它上面的while循环之外它只打印出1 2 3 4 5.为什么会发生这种情况?

2 个答案:

答案 0 :(得分:2)

如果j = 1在循环内部,则每次外循环循环时都会重置。

如果不是,它将不会被重置,j <= last的条件在后续循环中不会成立。

答案 1 :(得分:0)

当你把j放在while循环之外时,它的值最初为1并且将继续累积/增加 但如果j将在第一个while循环内,j将最初为1到5。这是因为每次执行1次循环时它总是设置为1。

纠正你的想法:

  

除了声明变量之外,你还初始化了变量 j

声明:

  

int j;

初​​始化:

  

int i;

初始化和声明:

  

int j = 1;

:)