对于我的程序,我要编写一个程序,它接受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