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

1

您的代码中有很多问题。

  1. string expr = in.next();应该String expr = in.next();
  2. pos在声明变量之前使用它。严重错误。
  3. int pos = expr.indexOf();//什么索引??
  4. 您的扫描仪名称input不是in

这些只是编译时错误。修复它们,然后查看您的程序的行为方式

于 2013-10-09T23:11:30.483 回答