對於我的程序,我要編寫一個程序,它接受2到10之間的行數。生成一個n行的乘法三角形。每行包含直到其行大小的條目。這我沒有問題。但是,在用戶輸入數字0到我的問題「請輸入您想要打印的行數:」它應該終止循環並打印「謝謝您使用此程序!」我使用了一個DO ... WHILE循環來確定用戶是否希望繼續。在我的循環中,我宣佈用戶想要打印的數字爲int num。並且只要num> = 1,我的循環應該繼續。但是,我一直在接收一條錯誤消息(num> = 1)。說它找不到符號。爲什麼這麼說?預先感謝您while循環不會讀取循環內輸入的變量
import java.io.*;
import java.util.*;
public class Prog166g
{ //begin testshell
public static void main (String[] args)
{ //begin main
int i;
int outer;
int inner;
int result;
int example = 4;
System.out.print("Number of rows for this triangle : " + example +"\n");
for (i = 1; i <= example; i++) {
System.out.printf("%5s", i);
}
System.out.println("");
for (outer = 1; outer <= 4; outer++) {
for (inner = 1; inner <= outer; inner++) {
result = outer * inner;
System.out.printf("%5s", result);
}
System.out.println("");
}
System.out.println("");
do{
System.out.print("Please enter the number of rows you would like to print: ");
Scanner kbReader = new Scanner(System.in);
int num = kbReader.nextInt();
System.out.println("");
System.out.println("Number of rows for this triangle: " + num);
for (i = 1; i <= num; i++) {
System.out.printf("%5s", i);
}
System.out.println("");
for (outer = 1; outer <= num; outer++) {
for (inner = 1; inner <= outer; inner++) {
result = outer * inner;
System.out.printf("%5s", result);
}
}
}while (num>=1);
System.out.println("Thank you for using this program");
}// ends main
}//ends testshell
這是說它無法找到符號'num',因爲'while'循環的範圍(您使用'num'的地方)在'do'循環之外(其中你聲明'num')。在'do {}'開始之前聲明'int num;'並且錯誤應該清除。 – davedwards