-1

为什么循环不是以 1 以外的不同值重新开始。

package com.company;

import java.util.Scanner;

public class ForDemo {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.println();
        System.out.print("ENTER A NUMBER: ");
        int b = sc.nextInt();
        int a;
        
        for(a=1 ;a<11;a=a+1)
        for(b=b;b<16;b=b+1)
        System.out.println(b + " * " + a + " = " + b*a);
    }
}

输出:

输入一个数字:1

1 * 1 = 1

2 * 1 = 2

3 * 1 = 3

4 * 1 = 4

5 * 1 = 5

6 * 1 = 6

7 * 1 = 7

8 * 1 = 8

9 * 1 = 9

10 * 1 = 10

11 * 1 = 11

12 * 1 = 12

13 * 1 = 13

14 * 1 = 14 在这里它终止了!

所需输出:

1 * 1 = 1

2 * 1 = 2

3 * 1 = 3

4 * 1 = 4

5 * 1 = 5

6 * 1 = 6

7 * 1 = 7

8 * 1 = 8

9 * 1 = 9

10 * 1 = 10

11 * 1 = 11

12 * 1 = 12

13 * 1 = 13

14 * 1 = 14

15 * 1 = 15

1 * 2 = 2

2 * 2 = 4

3 * 2 = 6

4 * 2 = 8

5 * 2 = 10

6 * 2 = 12

7 * 2 = 14

8 * 2 = 16

9 * 2 = 18

10 * 2 = 20

11 * 2 = 22

12 * 2 = 24

13 * 2 = 26

14 * 2 = 28

15 * 2 = 30 等等....

4

2 回答 2

1

你正在这样做:b=b. 所以这样做:

for(a=1 ;a<11;a=a+1)
        for(b=1;b<16;b=b+1) // change here!!
        System.out.println(b + " * " + a + " = " + b*a);
于 2021-11-10T08:14:09.337 回答
0

(x)只需在内循环开始时分配您的输入变量,如下所示即可解决您的问题。

到目前为止,您已被初始化b为上一次迭代的最后一个值,这就是为什么在第一次迭代后不执行内部循环的原因。

public class Simple {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.println();
        System.out.print("ENTER A NUMBER: ");
        int x = sc.nextInt(); // take input as x

        for(int a=1 ;a<11;a++) {
            for (int b = x; b < 16; b = b + 1) { // initialize b with input variable(x)
                System.out.println(b + " * " + a + " = " + b * a);
            }
        }
    }
}
于 2021-11-10T08:19:43.560 回答