2016-03-05 2 views
-5

Я начинаю программировать (буквально два дня новый), и у меня проблема. Я пытаюсь сделать ОЧЕНЬ базовый калькулятор, в котором пользователь вводит первый номер, операцию (только +, -, * и /), а затем второе число. У меня возникли проблемы с получением ввода операции, чтобы определить, что ответ будет с операторами if, так кто-то может объяснить это с помощью очень простой терминологии?Может ли кто-нибудь объяснить это утверждение, что я собираюсь, и сказать мне, что не так?

package learn; 
import java.util.Scanner; 

class calculator{ 
    public static void main(String args[]){ 

     Scanner input = new Scanner(System.in); 
    double termOne, operation, termTwo, answer; 
    System.out.println("Enter first term: "); 
    termOne = input.nextDouble(); 
    System.out.println("Enter operation (Valid operations are : "); 
    operation = input.nextDouble(); 
    System.out.println("Etner second term: "); 
    termTwo = input.nextDouble(); 

    if (operation == add) { 
     answer = termOne + termTwo; 
     System.out.println(answer); 
    } else if (operation == subtract) { 
     answer = termOne - termTwo; 
     System.out.println(answer); 
    } else if (operation == divide) { 
     answer = termOne/termTwo; 
     System.out.println(answer); 
    } else (operation == multiply) { 
     answer = termOne * termTwo; 
     System.out.println(answer); 
    } 
} 

}

+3

Где? add 'и его друзья ...? – Tunaki

+2

Похоже, вы просите строку, представляющую операцию, но вы читаете double, что является путаным. Также, если вы закончите с чтением String, не сравнивайте его с помощью '=='. Читайте: [Как сравнить строки в Java?] (Http://stackoverflow.com/questions/513832/how-do-compare-strings-in-java) – Pshemo

+0

@Pshemo [В выпуске JDK 7 вы может использовать объект String в 'public String getTypeOfDayWithSwitchStatement (String dayOfWeekArg) { String typeOfDay; переключатель (деньOfWeekArg) { кейс "понедельник": typeOfDay = "начало рабочей недели"; break; дело «вторник»: дело «среда»: '] (https://docs.oracle.com/javase/8/docs/technotes/guides/language/strings-switch.html) –

ответ

0

Хорошо, так как Tunaki и Pshemo правы, но я буду пытаться указать ваши проблемы на более упрощенном уровне.

Ваша первая ошибка заключается в том, как вы заявляете переменную «операция». Вы используете двойной тип данных (для чисел с плавающей запятой, kinda), но позже хотите, чтобы он удерживал строку.

Во-вторых, я предполагаю, что вы проверяете, вводит ли пользователь «добавить», а затем добавить два числа. Однако есть несколько проблем:

  1. Вы не используете кавычки для строки так, Java ищет переменную с именем добавить, а не собственно «добавить».

  2. String сравнение в java .. (почти все) нет работа так как есть. Лучшим способом сравнения двух строк является использование String.equals («otherString»). В вашем примере, что будет, если (operation.equals («добавить»))

Я надеюсь, что это помогает ... О, и я приветствую любой форматировать мой пост, я на мобильном, и это боль в a **