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 を入力し、ループがそれを文字列として読み取って結果を出力できるようにする単純なループを作成したいだけです。ありがとう!

4

1 に答える 1