[英]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.