2017-02-20 38 views
0
public class FavNum { 

    public static void isEven(int x){ 
     boolean b; 
     if (x%2==0) { 
      b=true; 
     }else{ 
      b=false; 
     } 
    } 

    public static void isSingle(int x){ 
     boolean b; 
     if (x > 0 && x < 10){ 
      b=true;   
     }else{ 
      b=false; 
      JOptionPane.showMessageDialog(null, "Your favorite number is not a single digit!");   
     } 
    } 

    public static void all(int x){ 
     isEven (x); 
     //What should I add here to use isEven and isSingle in conditionals? 
     //For example, I want to say something like if isEven and isSingle are true, then say this. 
     //Or if isEven is true and isSingle is not, say this. But I don't know how to properly write those conditionals. 
    } 

    public static void main(String[] args) { 
     int x = Integer.parseInt(JOptionPane.showInputDialog(null, "What is your favorite number?"));   
    }  
} 

Направления для этого является "используя логический истинные и ложный в условных

  • Создать новый проект под названием FavoriteNumber
  • Написать булеву метод, называемый ISEVEN, который принимает целочисленный параметр и определяет, если целое число равно или равно, возвращает либо true, либо false.
  • Напишите второй логический метод, называемый isSingleDigit, который принимает целочисленный параметр и определяет, является ли целое число одной цифрой или нет, возвращая либо true, либо false
  • В главном запросите пользователя для своего любимого номера.
  • Проверьте номер с помощью одного условного оператора и если и четные, и одиночные цифры, распечатайте сообщение (создайте объявление).
  • Тест с другим условным, если оба нечетные, а не одна цифра, и печатать другое (творческое) сообщение.
  • Добавить условное условие, которое проверяет, является ли нечетным ИЛИ единственной цифрой, и печатает объявление объявления.
  • Добавить окончательную условный, что тесты, если даже и НЕ одна цифры и печатает один заключительное творческое сообщение»

До сих пор я сделал первую 4 пули. У меня возникают проблемы (и не думаю Я полностью понимаю) 5-ю пулю. Я попытался сделать это, создав новый метод, называемый всем, где я планировал вызывать isSingle и isEven, и использовать if else-выражения для их сравнения и возврата сообщений соответственно. Но я застрял и оставил комментарии в моем вышеприведенном коде, который объясняет мои проблемы.

Может кто-нибудь помочь мне с этим заданием, пожалуйста? Или, по крайней мере, указать мне в правильном направлении?

Спасибо!

+2

x уже является булевым –

+0

Как это исправить? Это моя первая неделя в классе, поэтому я еще не очень опытен. –

+0

@LaurenMcCabe Я думаю, что вы смешали возвращаемый тип функции с параметрами, которые выполняет функция. Функция isOff должна, вероятно, принимать число в качестве параметра и возвращать логическое значение. Ваш принимает значение boolean как параметр и ничего не возвращает. –

ответ

1
public class Joption { 

    // declared outside so easier to be accessed by other methods in the class 
    private static int x; 

    // is the number passed into this method even? 
    private static boolean isEven(int x) { 
     if (x % 2 == 0) { 
      return true; 
     } 
     return false; 
    } 

    // is the number passed into this method single? 
    private static boolean isSingle(int x) { 
     if (x >= 0 || x < 10) { 
      return true; 
     } 
     return false; 
    } 

    // is the number passed in even AND single? 
    // notice how the number passed in flows into the two methods you just created. Their returns help you determine if they are even AND single. 
    private static void isEvenAndSingle(int x) { 
     if (isEven(x) && isSingle(x)) { 
      JOptionPane.showMessageDialog(null, x + "is Even and Single!"); 
     } 
    } 

    // same as above method but now it's checking to see if it's even and NOT single. 
    private static void isEvenAndNotSingle(int x) { 
     if (isEven(x) && !(isSingle(x))) { 
      JOptionPane.showMessageDialog(null, x + "is Even but NOT single!"); 
     } 
    } 

    // your main running method 
    // here you actually need to call the isEvenAndSingle() and isEvenAndNotSingle() methods with the retrieved x value from the JOptionPane so that you can actually print the appropriate messages in the responding JOptionPane 
    public static void main(String[] args) { 
     x = Integer.parseInt(JOptionPane.showInputDialog(null, "What is your favorite number?")); 
     isEvenAndSingle(x); 
     isEvenAndNotSingle(x); 
    } 

} 

Ваша проблема, как было сказано ранее, в том, как вы извлекаете значение из вашей JOptionPane. Вы получаете его как int. Но вы передаете его в свои методы как логическое. То, что вам действительно нужно сделать, это передать значения как int (см. Метод isEven() и isSingle()) и вернуть их в логическое.

Затем вас попросят создать сравнение с двумя методами, которые вы только что создали. Один, если число четное и одно и одно, если число четное и НЕ одиночное.

Я аннотировал код с комментариями, чтобы помочь вам лучше понять! Удачи вам в будущем кодировании java!:)

+0

Большое вам спасибо !!!!!!!! –

+0

Не беспокойтесь! : D Надеюсь, у вас будет больше удовольствия кодирования! Сообщите мне, если вам нужно больше объяснять! – blaytenshi

2

Вы сравниваете булевы с номерами:

boolean x; 

if (x%2==0) { //Error here 
    b=true; 
} 

if (x > 0 && x < 10){  //Error here 
     b=true; 

вы не можете сделать это.

Если x равно true или false, вы не можете проверить, больше ли он 0 или выполнить с ним арифметические операции.

0

Похоже, у вас есть раздел алгоритм выяснял От вас методов, вам нужно вернуть булево вместо пустого

public static boolean isEven(int x){ 
    return (x % 2) == 0; 
}