我只需要向我解释一些事情。当我们声明整数时我的想法是,只要它在开头就宣布它并不重要,所以我用这一小段代码打印出一个乘法表。
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.为什么会发生这种情况?
答案 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;
:)