|
需求: 输入三个参数
A.如果第三个参数为 0 ,那么就把参数一和参数二相加,例如: 1+3 => 4(不显示,直接入库); 提示:输入成功!
Test Case1: 输入:参数1=1;参数2=3;参数3=0 执行步骤.... 输出: "输入成功!"
B.如果第三个参数为 1 ,那么就把参数一和参数二合成一个数,例如: 1+3 => 13(不显示,直接入库); 提示:输入成功!
Test Case2: 输入:参数1=1;参数2=3;参数3=1 执行步骤.... 输出: "输入成功!"
C.如果第三个参数不为0也不为1,那么不做 A,B ;提示:请输入正确的操作类型!
Test Case3: 输入:参数1=1;参数2=3;参数3=(非0非1的任意数字字符等或者不添) 执行步骤.... 输出: "请输入正确的操作类型!"
代码(Java):
public class Fin {
/**
* @方法名:main
* @说明:主main方法--驱动,传递3个参数,进行相加,程序执行完毕提示执行成功;如果操作错误则提示!
* @param args
* @解释:传递进来2个String 参数
* @author Fin
*/
public static void main(String[] args) {
String one=args[0]; //参数1
String two=args[1]; //参数2
String value=args[2];//参数3
String in_db;
if(value.equals("0") || value.equals("1"))//验证参数3是否合法
{
if(value=="0") //如果参数为0 则 执行函数 add_int(..) 注意这里,的写法是否正确.
{
in_db=Integer.toString(add_int(one,two));
//System.out.println(in_db); //插装
}
else //如果参数不为0则执行函数 add_String(..)
{
in_db=add_String(one,two);
//System.out.println(in_db); //插装
}
}
else //参数如果不合法,则提示操作不正确.
{
System.out.println("请输入正确的操作类型!");
}
}
/**
* @name add_int
* @说明:整型变量相加,输入字段1,提示执行成功!
* @param one
* @param two
* @return int result
*/
public static int add_int(String one,String two)
{
int S_one = Integer.parseInt(one);
int S_two = Integer.parseInt(two);
int result=S_one+S_two;
System.out.println("执行成功!");
return result;
}
/**
* @name add_String
* @说明:字符串相加,输入字段2,提示执行成功!
* @param one
* @param two
* @return String result
*/
public static String add_String(String one,String two) {
String result;
result =one+two;
System.out.println("执行成功!");
return result;
}
}
执行结果: 你会发现,用例被成功执行,但是是否代表没有缺陷了呢? 甚至静态代码走查,也不会检查出来任何错误,那么走以一判断条件看看,
你就会有新的发现, if(value=="0") 这个判断的 T 永远不会被走到,呵呵.
原因分析: 这是内存地址的比较, Value 指向的内存地址和 "0" 不是一个内存地址.
流程图我不画了,应该可以证明你的要求了,呵呵.有不理解的再提出来,一起讨论.sdlkfj5
BUG严重度: 应该是4级以上了吧?
另外:可以把那个变量入库,看一看结果如下面的库模型
[ 本帖最后由 Fin 于 2007-9-7 21:03 编辑 ] |
|