2013-10-09 14 views
0
import java.util.Scanner; 

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

     Scanner input = new Scanner(System.in); 

     int x = 0; 

     System.out.println(" Enter a math operation: "); 
     String expr = input.next(); 

     int pos = expr.indexOf("+"); 

     if (pos >= 0) { 
      int op1 = Integer.parseInt(expr.substring(0, pos)); 
      int op2 = Integer.parseInt(expr.substring(pos - x , expr.length())); 
      System.out.println(op1 + op2); 
      } else 
      if (pos == expr.indexOf("-")) { 
      int op1 = Integer.parseInt(expr.substring(0, pos)); 
      int op2 = Integer.parseInt(expr.substring(pos - x , expr.length())); 
      System.out.println(op1 - op2); 
      } else 
      if (pos == expr.indexOf("/")) { 
      int op1 = Integer.parseInt(expr.substring(0, pos)); 
      int op2 = Integer.parseInt(expr.substring(pos - x , expr.length())); 
      System.out.println(op1/op2); 
      } else 
      if (pos == expr.indexOf("%")) { 
      int op1 = Integer.parseInt(expr.substring(0, pos)); 
      int op2 = Integer.parseInt(expr.substring(pos - x , expr.length())); 
      System.out.println(op1 % op2); 
      } 
      else { 
      System.out.println(" Invalid operation "); 
       } 
      }  
    } 

Хотя это проходит через JAVAC, программа автоматически говоритОшибки, связанные с расположением переменных

an ex out of range: -1 
at java.lang.String.substring(String.java:1937) 
at MathFun.main(MathFun.java:21) 

Есть ли что-то не так с петлей? Я просто хочу сделать простой цикл, который позволяет пользователю ввести строку 2 + 2 и позволить циклу читать это как строку и печатать результат. Спасибо!

+0

'Что-то не так в цикле ?, где есть цикл – Prateek

ответ

1

В коде есть несколько ошибок.

  1. string expr = in.next(); должен быть String expr = in.next();
  2. Вы используете pos переменную, прежде чем объявить. Серьезная ошибка.
  3. int pos = expr.indexOf(); // Индекс чего ??
  4. Ваше имя сканера input не in.

И это только ошибки времени компиляции. Исправьте их, а затем посмотрите, как работает ваша программа.

+0

Программа компилируется и запускается, но она печатает ошибку, когда я помещаю строку – ExchangeChri

Смежные вопросы