3 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊
我稍微更改了您的代碼并將其作為一個(gè)整體發(fā)布,以避免混淆:
public static void main(String[] args) {
// Welcome the user
System.out.println("Welcome to the Squares and Cubes table");
System.out.println();
Scanner sc = new Scanner(System.in);
String choice = "y";
do {
int integer = Integer.MAX_VALUE;
while (integer == Integer.MAX_VALUE) {
// Get input from the user
System.out.print("Enter an integer: ");
String input = sc.nextLine();
try {
integer = Integer.parseInt(input);
}
catch (NumberFormatException e) {
System.out.println("Error! Invalid integer. Try again.");
}
}
if(integer<0){
System.out.println("Error! Number must be greater than 0");
System.out.print("Enter an integer: ");
integer = sc.nextInt();
}
if(integer>100){
System.out.println("Error! Number must be less than or equal to 100");
System.out.print("Enter an integer: ");
integer = sc.nextInt();
}
// Create a header
String header = "Number " + "Squared " + "Cubed " + "\n"
+ "====== " + "======= " + "===== ";
System.out.println(header);
int square = 0;
int cube = 0;
String row = "";
for (int i = 1; i <= integer; i++)
{
square = i * i;
cube = i * i * i;
row = i + " " + square + " " + cube;
System.out.println(row);
}
// See if the user wants to continue
System.out.print("Continue? (y/n): ");
choice = sc.next();
System.out.println();
} while (!choice.equalsIgnoreCase("n"));
}
這個(gè)想法是while在你的循環(huán)中創(chuàng)建另一個(gè)并運(yùn)行它直到用戶傳遞一個(gè)整數(shù)。

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
Integer.parseInt方法是將 the 轉(zhuǎn)換String為 int 并NumberFormatException在字符串無法轉(zhuǎn)換為int類型時(shí)拋出 a 。
應(yīng)該是這樣的:
System.out.print("Enter an integer: ");
Scanner sc =new Scanner(System.in);
try {
int integer = Integer.parseInt(sc.nextLine());
} catch (NumberFormatException e) {
System.out.println("Error! Invalid integer. Try again.");
}

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以使用此方法來測試輸入的值是否為有效整數(shù)。以此結(jié)果為基礎(chǔ),您可以從其他驗(yàn)證開始
public boolean isInt(string input) {
try {
Integer.parseInt(text);
return true;
} catch (NumberFormatException e) {
return false;
}
}
添加回答
舉報(bào)