Принимая свой первый класс Java, и я застрял на глупые. Я делаю проект палиндрома. Эта логика кажется хорошей. В любом случае отображается True. Что я делаю не так?Java домашнее задание. Проблема с булева логика
вызов:
boolean result = check(input);
или в самом методе:
public static void display(boolean result, String palindrome)
{
if (result = true)
{
JOptionPane.showMessageDialog(null, palindrome
+ " is a palindrome.");
} else
JOptionPane.showMessageDialog(null, palindrome
+ " is not a palindrome.");
}
Вот весь код: импорт javax.swing.JOptionPane;
public class Palindrome
{
public static void main(String args[])
{
// declare variables
// call methods
String input = retrieveInput();
boolean result = check(input);
display(result = false, input);
finish();
}
// Accepts and validates input
public static String retrieveInput()
{
// declare variables
int length;
String palindrome = null;
boolean done = false;
while (!done)
{
try
{
// user input
palindrome = JOptionPane.showInputDialog(null,
"Please enter a 5 digit integer:");
length = palindrome.length();
// data validation
if (length != 5)
{
throw new NumberFormatException();
} else
done = true;
}
catch (NumberFormatException e)
{
JOptionPane.showMessageDialog(null,
"Error. Please enter a 5 digit integer", "Error",
JOptionPane.INFORMATION_MESSAGE);
}
}
return palindrome;
}
public static Boolean check(String palindrome)
{
// determine if palindrome
int left = 0;
int right = palindrome.length() - 1;
while (left < right)
{
if (palindrome.charAt(left) != palindrome.charAt(right))
return false;
left++;
right--;
}
return true;
}
// The output method displays commission and sales
public static void display(boolean result, String palindrome)
{
if (result = true)
{
JOptionPane.showMessageDialog(null, palindrome
+ " is a palindrome.");
} else
JOptionPane.showMessageDialog(null, palindrome
+ " is not a palindrome.");
}
// finish() method exits program
public static void finish()
{
System.exit(0);
}
}
"Пожалуйста, введите 5 цифр целое" вы имеете в виду, как 12345? целое число - это просто число. Я считаю, вы имеете в виду 5-символьное слово? –
'if (result = true)' не будет компилироваться в Java. Вы уверены, что разместили свой настоящий код? –
Daniel Bo, Да, эта инструкция определенно вызвала целое число, точно так же, как 12345 (или 12321 для действительного палиндрома – user2802785