簡體   English   中英

為什么我沒有得到除 1 以外的 'a' 值的輸出?

[英]why don't i get the out put for values of 'a' other than 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 等等....

你這樣做: 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);

只需在內循環開始時分配您的輸入變量(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);
            }
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM