Действительно запутался в том, с чего начать операции с множественным выбором?
У меня есть приглашение "Напишите программу, которая выполняет следующие операции: +, -, *, /, % (как определено Java). Ваша программа должна сначала прочитать первое число, затем операцию, а затем второе число. Оба числа являются целыми числами. Если для операции пользователь ввел один из символов, показанных выше, ваша программа должна выполнить соответствующую операцию и вычислить результат. После этого она должна распечатать операцию и результат. Если операция не распознана, программа должна отобразить сообщение об этом. Вам не нужно выполнять проверку входных данных для целых чисел."
Пример вывода, который я привел:
Enter the first number: 6
Enter the operation: +
Enter the second number: 10
6 + 10 = 16
Как я могу начать это? Я очень запутался и действительно плохо знаком с Java! Любая помощь с благодарностью.
5 ответов
Как правило, вы сначала хотите начать читать ввод из STDIN:
Scanner in = new Scanner(System.in);
Затем я прочитал бы все параметры и затем выполнил вычисление:
System.out.print("Enter the first number: ");
int left = Integer.parseInt(in.nextLine());
System.out.print("Enter the operation: ");
String operation = in.nextLine();
System.out.print("Enter the second number: ");
int right = Integer.parseInt(in.nextLine());
Теперь, когда все данные собраны, вы можете начать действовать.
int result;
switch(operation)
{
case "+": result = left + right; break;
case "-": result = left - right; break;
case "*": result = left * right; break;
case "/": result = left / right; break;
case "%": result = left % right; break;
default: throw new IllegalArgumentException("unsupported operation " + operation);
}
System.out.println(left + " " + operation + " " + right + " = " + result);
Введите первое число: 6 Введите операцию: + Введите второе число: 10 6 + 10 = 16
Scanner f=new Scanner(System.in)
System.out.print("Enter the first number: ")
int firstNum=f.nextInt();
System.out.println();
System.out.print("Enter the operation: ")
String Op=f.nextLine();
System.out.println();
System.out.print("Enter the Second number: ")
int secNum=f.nextInt();
System.out.println();
int answ=0;
if(Op.equals("+"){
answ=firstNum+secNum;
}else if(.......){
}
Надеюсь, поможет:)
Чтобы прочитать целые числа, используйте сканер
public static void main(String [] args)
{
Scanner stdin = new Scanner(System.in);
System.out.println("Enter the first number: ");
int firstNum = stdin.nextInt(); //first number
System.out.println("Enter the operation: ");
String operation = stdin.next(); //operation
System.out.println("Enter the second number: ");
int secondNum = stdin.nextInt(); //second number
doOperation(firstNum, secondNum, operation);
}
public static void doOperation(int firstNum, int secondNum, String operation)
{
if(operation.equals("+")
{
int result = firstNum + secondNum;
}
else if(...)
{
//etc
}
System.out.println(firstNum + " " + operation + " " + secondNum + " = " + result);
}
Похоже, мы делаем твою домашнюю работу!:) Убедитесь, что вы изучили эти вещи, иначе это в конечном итоге укусит вас. Вы можете только отсрочить неизбежное. С этим "отцовским советом", вот и ты.
Во-первых, вы должны быть в состоянии прочитать ввод с консоли, чтобы вы могли получить номера ввода и операции. Конечно, на это уже есть целые ответы. Одна ссылка: Java: Как получить входные данные из System.console()
Если у вас есть вход, то вы можете работать с ним.
Вам нужно будет посмотреть на введенные элементы. Они говорят, что вам не нужно проверять числа, но вам нужно проверить операцию. Итак, посмотрите на переменную String операции после того, как вы получили ее из консоли, и посмотрите, равно ли это "equalsIgnoreCase" (или просто равно, поскольку эти символы не имеют верхнего регистра) для каждой из принятых операций. Если он не равен ни одному из них, вы должны распечатать сообщение так, как оно написано. (Опять же с System.out.println).
Затем вы можете перейти к некоторым условиям if и фактически выполнить математику, если операция равна одному из пунктов. Например:
if(inputOperation.equalsIgnoreCase("+")){
double solution = inputInt1 + inputInt2;
//Need to do for all other operations. I didn't do the WHOLE thing for you.
}else if(NEED_TO_FILL_IN_THIS){
//Need to fill in the operation.
//You will need to have more else if conditions below for every operation
}else{
System.out.println("Your operation of '"+inputOperation+"' did not match any accepted inputs. Accepted input operations are '+','-','%','/' and '*'. Please try again.");
}
System.out.println("Your answer to the equation '"+inputInt1+" "+inputOperation+" "+inputInt2+"' is the following:"+solution);
Это должно начать вас. Дайте мне знать, если вам все еще нужно дальнейшее направление.
Надеюсь, это поможет!
И в заключение несколько отеческих советов: опять же, похоже, что вы делаете домашнее задание. Все это довольно хорошо задокументировано, если вы просто знаете, как Google. Msgstr "Java получить ввод из консоли". Или "Java проверяет, равна ли строка другой строке". Научиться ловить рыбу гораздо важнее, чем получить рыбу. Я предлагаю вам сделать кое-что, потому что, если это ваша домашняя работа, и вы не уверены, то кажется, что вы немного отстали. Я не хочу быть грубым. Я просто пытаюсь помочь вам в долгосрочной перспективе.
Вот мое решение
package com.company;
import com.sun.org.apache.regexp.internal.RE;
import java.util.Scanner;
public class Main {
private static Scanner scanner=new Scanner(System.in);
public static void main(String[] args) {
// write your code here
int First,Second,Resualt;
char operation;
System.out.println("Enter the first number: ");
First=scanner.nextInt();
System.out.println("Enter the operation:");
operation=scanner.next().charAt(0);
System.out.println("Enter the second number :");
Second=scanner.nextInt();
if (operation=='+'){
Resualt=First+Second;
System.out.println(First+" "+"+ "+Second+" = "+Resualt);
}
else if (operation=='-'){
Resualt=First-Second;
System.out.println(First+" "+"- "+Second+" = "+Resualt);
}
else if (operation=='*'){
Resualt=First*Second;
System.out.println(First+" "+"* "+Second+" = "+Resualt);
}
else if (operation=='%'){
Resualt=First%Second;
System.out.println(First+" "+"% "+Second+" = "+Resualt);
}
else {
System.out.println("Error");
}
}
}
Удачи!!