【问题标题】:why don't i get the out put for values of 'a' other than 1?为什么我不输出除 1 以外的 'a' 值?
【发布时间】:2021-11-10 08:10:40
【问题描述】:

为什么循环不是以 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 in for(b=b;b&lt;16;b=b+1)。您的第一个内循环以b=16 结束。然后在下一次外循环迭代中,您的内循环 b 为 16,因此条件 b&lt;16 为 false。
  • 接受用户输入b还有什么意义?你想用它做什么?
  • 他正在接受他的起始位置的输入。我想在这里添加一个注释,请在处理之前检查您的输入。您的输入必须小于或等于 15。否则您的代码不会产生任何输出

标签: java for-loop


【解决方案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);

【讨论】:

    【解决方案2】:

    只需在内部循环的开始处分配您的输入变量(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);
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-30
      • 1970-01-01
      相关资源
      最近更新 更多