码迷,mamicode.com
首页 > 编程语言 > 详细

Java 向main方法传值时关于*号的问题

时间:2018-06-08 22:09:33      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:png   class   form   rate   TE   main方法   ring   文件的   str   

现有要求如下:

  通过cmd的方式,求简单表达式的值。

  比如输入 java Expression 3 + 4

  得到的结果为:7

代码:

import java.text.DecimalFormat;

public class Expression {

public static void main(String[] args) throws Exception {
  if(args == null || args.length != 3){

    //MyException只是简单的继承Exception,可视为就是Exception。(这里是因为题目上的特殊要求,请忽略......)
    throw new MyException("参数格式不正确");
  }

  //表达式中的左操作数
  double left = Double.valueOf(args[0]);

  //操作符:+、-、*、/
  String operate = args[1];

  //右操作数
  double right = Double.valueOf(args[2]);
  //运算结果
  double result;


  switch (operate) {
    case "+":
      result = left + right;
    break;

    case "-":
      result = left - right;
    break;

    case "*":
      result = left * right;
    break;

    case "/":
      result = left / right;
    break;

    default:
      throw new MyException("参数格式不正确");
  }

  System.out.println(new DecimalFormat("0.00").format(result));
  }
}

运行结果:

技术分享图片

发现仅当 操作符为 * 号时,程序有问题

 

修改程序,将输入为: 2 * 3 时的args数组进行输出

if(args != null){
  for(int i = 0;i < args.length;i++){
    System.out.println(args[i]);
  }
}

技术分享图片

发现当输入参数为‘*’时,args数组中会有很多数据

对比发现,刚好和该java文件路径下所有文件的名字重复

技术分享图片

所以推算出:向main方法传值时,输入*号,会向args数组添加该java文件路径下所有文件的名字

Java 向main方法传值时关于*号的问题

标签:png   class   form   rate   TE   main方法   ring   文件的   str   

原文地址:https://www.cnblogs.com/xiaokediandian/p/9157449.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!