import java.io.*;
public class work
{         float opr1,opr2,result;
  char opr; public static void main (String  args[])throws IOException {
float opr1,opr2,result;
char opr;
        InputStreamReader we = new InputStreamReader(System.in); 
BufferedReader shuru=new BufferedReader(we); 
        System.out.println("请输入操作数opr1:"); 
opr1=Float.parseFloat(shuru.readLine()); 
        System.out.println("请输入操作数opr2:");
opr2=Float.parseFloat(shuru.readLine());
System.out.println("请输入操作符opr:");
opr = (char)System.in.read();
zch();
                System.out.println(result); 
}
 public void zch() { 
switch (opr)
{
case '-':
        this.result = this.opr1 - this.opr2; 
        break; 
        case '+':
        this.result = this.opr1 +this.opr2; 
        break;  
        case '*':  
        this.result = this.opr1 * this.opr2; 
        break; 
        case '/': 
        if(opr2 == 0) 
        System.out.println("ERROR!");
        else 
        this.result = this.opr1 / this.opr2; 
        break;
}
}
}

解决方案 »

  1.   

    错误太多,几乎重写,但还是保留了很多你的想法。。
    import java.io.*;public class work { public static void main(String args[]) throws IOException {
    float opr1, opr2, result;
    char opr;
    InputStreamReader we = new InputStreamReader(System.in);
    BufferedReader shuru = new BufferedReader(we);
    System.out.println("请输入操作数opr1:");
    opr1 = Float.parseFloat(shuru.readLine());
    System.out.println("请输入操作数opr2:");
    opr2 = Float.parseFloat(shuru.readLine());
    System.out.println("请输入操作符opr:");
    opr = (char) System.in.read();
    result=zch(opr1, opr2,opr);
    System.out.println(result);
    } public static float zch(float opr1, float opr2, char opr) {
    switch (opr) {
    case '-':
    return opr1 - opr2;
    case '+':
    return opr1 + opr2;
    case '*':
    return opr1 * opr2;
    case '/':
    if (opr2 == 0)
    System.out.println("ERROR!");
    else
    return opr1 / opr2;
    }
    return 0;
    }
    }
      

  2.   

    错误很多,改了一下package test;import java.io.*; 
    public class work { 
    float opr1,opr2,result=0; 
    char opr; public static void main (String  args[])throws IOException {          
    new work().zch();  

    public void zch() { 
    try{

    InputStreamReader we = new InputStreamReader(System.in); 
    BufferedReader shuru=new BufferedReader(we); 
        System.out.println("请输入操作数opr1:"); 
        opr1=Float.parseFloat(shuru.readLine()); 
        System.out.println("请输入操作数opr2:"); 
        opr2=Float.parseFloat(shuru.readLine()); 
        System.out.println("请输入操作符opr:"); 
        opr = (char)System.in.read();
    }catch(Exception e){}
    switch (opr) { 
    case '-': 
            result = opr1 - opr2; 
            System.out.println(result); 
            break; 
            case '+': 
            result = opr1 +opr2; 
            System.out.println(result); 
            break;  
            case '*':  
            result = opr1 * opr2; 
            System.out.println(result); 
            break; 
            case '/': 
            if(opr2 == 0) 
            System.out.println("ERROR!"); 
            else 
            result = opr1 / opr2; 
            System.out.println(result); 
            break; 


    }建议使用设计模式中简单工厂模式来写,有利于重构
      

  3.   

    opr = (char)System.in.read(); 
    zch(); 
    System.out.println(result); 把这三行换成
    System.out.println(Double.parseDouble(opr1+opr+opr2)); 试一下
      

  4.   

    看得出刚学OOP语言,没有分清类的使用,你要是这样写可以改为静态的使用。import java.io.*; 
    public class Work 
    {       static float opr1,opr2,result; 
      static char opr; 
      //这里改为静态的。public static void main (String  args[])throws IOException { 
    //float opr1,opr2,result; 
    //char opr; 
    //这里就没有用了。
            InputStreamReader we = new InputStreamReader(System.in); 
    BufferedReader shuru=new BufferedReader(we); 
            System.out.println("请输入操作数opr1:"); 
    opr1=Float.parseFloat(shuru.readLine()); 
            System.out.println("请输入操作数opr2:"); 
    opr2=Float.parseFloat(shuru.readLine()); 
    System.out.println("请输入操作符opr:"); 
    opr = (char)System.in.read(); 
    zch(); //这里你和用成全角符号了
                    System.out.println(result); 

    public static void zch() 
    //这里也要改为静态的,不能用this.

    switch (opr) 

    case '-': 
            result = opr1 - opr2; 
            break; 
            case '+': 
            result = opr1 +opr2; 
            break;  
            case '*':  
            result = opr1 * opr2; 
            break; 
            case '/': 
            if(opr2 == 0) 
            System.out.println("ERROR!"); 
            else 
            result = opr1 / opr2; 
            break; 


    }
      

  5.   

    import java.io.*;
    class jaijai{
     public static void main(String [] aa)throws IOException{
         float ap1,ap2,ap3;
          char ch;
        BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
        System.out.println("请输入一个数字");
        ap1=Float.parseFloat(in.readLine());
        System.out.println("请再输入一个数字");
        ap2=Float.parseFloat(in.readLine());
        System.out.println("请输入一个运算符");
        ch=(char)System.in.read();
         chn(ap1,ap2,ch);}
      static  void chn(float ap1,float ap2,char ch){
           switch(ch){
         case '+':
           System.out.println(ap1+ap2);
         case '/':
           System.out.println(ap1/ap2);
         case '-':
           System.out.println(ap1-ap2);
         case '*':
           System.out.println(ap1*ap2);
    }
    }
     }
      

  6.   

    import java.io.*;public class Work {
    static float opr1, opr2, result;
    static char opr;

    public static void main(String args[]) throws IOException {
    InputStreamReader we = new InputStreamReader(System.in); 
    BufferedReader shuru = new BufferedReader(we);
    System.out.println("请输入操作数opr1:");
    opr1 = Float.parseFloat(shuru.readLine()); //静态方法中不能直接使用非static的变量
    System.out.println("请输入操作数opr2:");
    opr2 = Float.parseFloat(shuru.readLine());//静态方法中不能直接使用非static的变量
    System.out.println("请输入操作符opr:");
    opr = (char) System.in.read();    //静态方法中不能直接使用
    //非static的变量
    zch();
    System.out.println(result);
    } public static void zch() {   //非静态的方法中是可以直接使用静态的变量的 如:opr 、result 、 
    //  opr1、opr2
    switch (opr) {
    case '-':
    result = opr1 - opr2;
    break;
    case '+':
    result = opr1 + opr2;
    break;
    case '*':
    result = opr1 * opr2;
    break;
    case '/':
    if (opr2 == 0)
    System.out.println("ERROR!");
    else
    result = opr1 / opr2;
    break;
    }
    }
    }