2013-10-09 90 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