int i, tem = 3;
i = tem;
for (int x = 0; x <= i; x++) {
for (int j = 1; j< tem; j++) {
System.out.println("a");
}
}
以上代码打印a
8次。我无法理解为什么。
答案 0 :(得分:0)
第一个for
从0到3迭代,即 4 次。
第二个for
从1到3迭代,即 3 次。
由于第一个for
位于第二个内,因此打印将发生3次* 4,即 12 。
如果您需要进行8次打印,则应在第一个或第二个<=
中更改<
for
。
答案 1 :(得分:0)
不应为 8 次打印'a'。以下程序打印'a'表示4 * 3 = 12 次。
public class HelloWorld{
public static void main(String []args){
int i, tem = 3;
i = tem;
for (int x = 0; x <= i; x++) {
for (int j = 1; j <= tem; j++) {
System.out.println("a");
}
}
}
}
尝试执行上述程序,您将获得正确的'a'(12次)而非8 a的数量。
答案 2 :(得分:0)
for (int j = 1; j < tem; j++)
上述代码适用于j=1
到j=2
,即 2 次并将打印
a
a
现在是for循环
for (int x = 0; x <= i; x++)
将执行上述打印 4 次(x = 0 to 3
)。总的来说,您的代码将打印 8 次。
a //x=0
a
a //x=1
a
a //x=2
a
a //x=3
a
答案 3 :(得分:0)
考虑迭代一个x = 0和tem = 3,因此对于条件j = 1和j = 2,内部for循环迭代两次。第二次迭代现在x = 1而tem = 3,在这种情况下内部循环迭代两次,j = 1和j = 2.此过程继续x = 2和x = 3,所以最后第一次循环条件传递给4次,即x = 0,x = 1,x = 2和x = 3,并且内部for循环条件为每个第一个循环条件传递两次,因此它打印4 * 2次,这是8次
答案 4 :(得分:0)
有时候使用调试器是有用的,在这种情况下你不时地循环 在索引中打印以查看/证明&#34;逻辑&#34;
你的代码与for循环中的索引有点陷阱 但您可以替换打印行并验证
内环是1到2:2次
ergo 4x2次打印char a
public static void main(String[] args) {
int i, tem = 3;
i = tem;
for (int x = 0; x <= i; x++) {
for (int j = 1; j < tem; j++) {
System.out.println("x: " + x + ",j:" + j);
}
}
}