2 回答

TA貢獻1797條經驗 獲得超4個贊
沒有數字是>= 100000 and <= 9999,這就是為什么你永遠看不到不是 5 位數字的原因。
您必須將該條件更改為:
if (userNumber <= 9999 || userNumber > 99999)
并改變:
else if(userNumber < 100000 && userNumber > 9999)
到一個簡單的
else
因為如果代碼到達該else部分,那么userNumber < 100000 && userNumber > 9999總是true.
這同樣適用于
else if (Number1 != Number5 || Number2 !=Number4);
(注意:;最后是錯誤的并且是嚴重頭痛的根源)
必須更改為:
else
這個說法:
int Number3 = (userNumber / 100) % 10;
是多余的,因為 的值Number3在這種情況下沒有用。
所以你的代碼應該像這樣簡化:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print ("Enter 5-digit integer value: ");
int userNumber = input.nextInt();
System.out.println("Input value: " + "\t" + userNumber);
if (userNumber <= 9999 || userNumber > 99999) {
System.out.println("Not 5 digits.");
}
else {
int Number5 = (userNumber / 10000) % 10;
int Number4 = (userNumber / 1000) % 10;
int Number2 = (userNumber / 10) % 10;
int Number1 = userNumber % 10;
if (Number1 == Number5 && Number2 == Number4) {
System.out.println("Judgement: " + "\t" + "\t" + "True");
} else {
System.out.println("Judgement: " + "\t" + "\t" + "False");
}
}
}

TA貢獻1893條經驗 獲得超10個贊
這可以工作:
import java.util.Scanner;
import java.lang.*;
public class Main
{
public static void main(String args[])
{
Scanner input = new Scanner(System.in);
System.out.print ("Enter 5-digit integer value: ");
String userNumber = input.next();
System.out.println("Input value: " + "\t" + userNumber);
//User input incorrect amount of digits
if (userNumber.length()!=5)
{
System.out.println("Not 5 digits.");
}
else{
//Conditions are met for Palidrome Number
if(new StringBuilder(userNumber).reverse().toString().equals(userNumber))
{
System.out.println("Judgement: " + "\t" + "\t" + "True");
}
//Conditions are not met for Palidrome Number
else
{
System.out.println("Judgement: " + "\t" + "\t" + "False");
}
}
}
}
您的第二條else if語句是多余的,并且您的最后一條 if 語句中有一個額外的分號。
添加回答
舉報