帮忙修改一段JAVA程序!

我是新手,想从键盘输入3个字符,第一个是数,第二个是运算符,第三个是数,判断运算符,实现加减乘除四则运算。下面是一点程序,帮忙改下,我不胜感激!是高手的话,帮忙给我加下变... 我是新手,想从键盘输入3个字符,第一个是数,第二个是运算符,第三个是数,判断运算符,实现加减乘除四则运算。
下面是一点程序,帮忙改下,我不胜感激!
是高手的话,帮忙给我加下变量过滤。谢谢了!
import java.io.*;
public class cal{
public static void main(String[] args) throws IOException{
System.out.println("请输入第一个操作数!");
BufferedReader buf1;
String str1;
buf1=new BufferedReader(new InputStreamReader(System.in));
str1=buf1.readLine();
System.out.println("请输入运算符!");
BufferedReader buf2;
String str2;
buf2=new BufferedReader(new InputStreamReader(System.in));
str2=buf2.readLine();
System.out.println("请输入第二个操作数!");
BufferedReader buf3;
String str3;
buf3=new BufferedReader(new InputStreamReader(System.in));
str3=buf3.readLine();
yunsuan(str1,str2,str3);
}

public static String yunsuan(String x,String y,String z){
String b=y;
String a=x;
String c=z;
switch(b)
{
case "+":
return a+c;
case "-":
return a-c;
//sub=a-c;
// System.out.println("a+"-"+c+"="+sub");
break;
case "*":
//sub=a*c;
//System.out.println("a+"*"+c+"="+sub");
break;
return a*c;
case "/":
//sub=a/c;
//System.out.println("a+"/"+c+"="+sub");
break;
return a/c;
default:
System.out.println("输入非法!");
break;
}
}
}
高手们给的第一个答案能编译成功,但是有异常,帮忙再解决下异常处理,谢谢!
展开
 我来答
puziguo
2008-06-13 · TA获得超过1928个赞
知道小有建树答主
回答量:884
采纳率:86%
帮助的人:809万
展开全部
public class cal {
public static void main(String[] args) {
System.out.println("请输入第一个操作数!");
BufferedReader buf1 = null;
try {
String str1;
buf1 = new BufferedReader(new InputStreamReader(System.in));
str1 = buf1.readLine();
System.out.println("请输入运算符!");
//BufferedReader buf2;
String str2;
// buf2 = new BufferedReader(new InputStreamReader(System.in));
str2 = buf1.readLine();
java.lang.Character c = new Character(str2.charAt(0));
System.out.println("请输入第二个操作数!");
//BufferedReader buf3;
String str3;
// buf3 = new BufferedReader(new InputStreamReader(System.in));
str3 = buf1.readLine();
try {
int result = yunsuan(str1, c, str3);
System.out.println(str1 + " " + c + " " + str3 + " = " + result);
} catch (RuntimeException e) {
System.out.println(e.getMessage());
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
buf1.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

public static int yunsuan(String x, char y, String z) {
char b = y;
int a =0;
int c =0;
try {
a= Integer.parseInt(x);
c= Integer.parseInt(z);
} catch (NumberFormatException e) {
throw new RuntimeException("输入非法!");
}
int result = 0;
switch (b) {
case '+':
result = a + c;
break;
case '-':
result = a - c;
break;
// sub=a-c;
// System.out.println("a+"-"+c+"="+sub");
case '*':
result = a * c;
break;
// sub=a*c;
// System.out.println("a+"*"+c+"="+sub");
case '/':
// sub=a/c;
// System.out.println("a+"/"+c+"="+sub");
result = a / c;
break;
}
return result;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狗步轻扬
2008-06-13 · TA获得超过709个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:0
展开全部
刚漏下一个break.
import java.io.*;

public class cal {
public static void main(String[] args) throws IOException {
System.out.println("请输入第一个操作数!");
BufferedReader buf1;
String str1;
buf1 = new BufferedReader(new InputStreamReader(System.in));
str1 = buf1.readLine();
System.out.println("请输入运算符!");
BufferedReader buf2;
String str2;
buf2 = new BufferedReader(new InputStreamReader(System.in));
str2 = buf2.readLine();
char[] char2 = str2.toCharArray();
System.out.println("请输入第二个操作数!");
BufferedReader buf3;
String str3;
buf3 = new BufferedReader(new InputStreamReader(System.in));
str3 = buf3.readLine();

System.out.println(" 结果为: "+yunsuan(str1, char2[0], str3));

}

public static int yunsuan(String x, char y, String z) {
char b = y;
int a = Integer.parseInt(x);
int c = Integer.parseInt(z);
int result = 0 ;
switch (b) {
case '+':
result = a + c;
break;
case '-':
result = a - c;
break;
case '*':
result = a * c;
// sub=a*c;
// System.out.println("a+"*"+c+"="+sub");
break;

case '/':
result = a / c;
// sub=a/c;
// System.out.println("a+"/"+c+"="+sub");
break;

default:
System.out.println("输入非法!");
break;
}
return result;
}
}

输入内容要符合要求:

例如:

请输入第一个操作数!
1
请输入运算符!
+
请输入第二个操作数!
3
结果为: 4
不要多空格之类的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式