你们好,为什么代码运行结果为图一 main方法里Float.parseFloat是什么意思,怎么用的。为什么不能在主方法的try中使用Scanner输入?

_shiyizhi 2018-12-04 01:55:31
package Exception;

import java.util.Scanner;

public class Calculator {
static private float result;
static void calculate(float op1,char sign,float op2) throws IllegalSignException,ArithmeticException{
switch(sign) {
case'+':
result=op1+op2;
break;
case'-':
result=op1-op2;
break;
case'x':
result=op1*op2;
break;
case'/':

if(op2==0)
throw new ArithmeticException();
result=op1/op2;
break;
default:
throw new IllegalSignException("你输入的运算符不对");
}
}
public static void main(String []args) {
float a,b;
char o;
Scanner in=new Scanner(System.in);
//a=Float.parseFloat(args[0]);
//a=in.nextFloat();
try {
//a=in.nextFloat();

//b=in.nextFloat();
a=Float.parseFloat(args[0]);
o=args[1].charAt(0);
b=Float.parseFloat(args[2]);
calculate(a,o,b);
System.out.println(a+""+o+""+b+"="+result);
}catch(NumberFormatException e) {
System.out.println("你输入的数字有可能不是合法数字"+"注意:乘号用字符x代替");
}
catch(ArrayIndexOutOfBoundsException e) {
System.out.println("你没有输入所需数据"+
"程序需要两个数字和一个字符代替");
}
catch(ArithmeticException e) {
System.out.println("进行除法时,第二个数字不能为0!");
}
catch(IllegalSignException e) {
System.out.println("每次输入只能输入(+,-,x,/)其中一个"+
"注意乘号用x代替");
System.out.println(e.getMessage());
}
}

}
...全文
180 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Divisadero 2018-12-06
  • 打赏
  • 举报
回复
代码没有错的,就是在运行前要先输入命令行参数,建议你看下这篇:http://www.cnblogs.com/wenjiang/archive/2013/01/12/2857765.html

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧