码迷,mamicode.com
首页 > 其他好文 > 详细

结对编程(二)

时间:2016-04-18 23:56:45      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:

结对编程作业:

题目:构造程序,分别是:

•不能触发Fault

•触发Fault,但是不能触发Error。

•触发Error,但是不能产生Failure。

 

编程语言:java

结对对象:沙夫都  博客地址:http://www.cnblogs.com/S-vendor/

结对照片:
 
项目介绍:让用户输入一句只有变量名和值的代码(例如 aInt=45;),程序将分析出变量名和值(例如 name:aInt  value:45)

源代码:

public class Lexer {

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("please input your code");

String s = in.next();
in.close();
try {
divide(s);
}catch (Exception e){
System.err.println("Error");
}
}

public static void divide(String s) {
System.out.println("your inputted is "+s);
String name=s.substring(0,s.indexOf("="));
String value=s.substring(s.indexOf("=")+1,s.length()-1);

System.out.println("name:"+name);
System.out.println("value:"+value);
}
}

 1.不触发Fault

输入”sum=12;“ 时。

技术分享

看似没错,但是看程序就会发现是有问题的。

2.触发Fault 但不Error

当输入为:

若输入为"sum==12;" 时,

技术分享

很明显输出的value将是”=12“,显然不是我们想得到的结果。

2.触发Error 

String s = in.next();

若输入为"sum = 12;" 时,输入的就只是sum,因为next()的中断符是回车或空格。此处也使程序产生Fault

技术分享


此外:
String name=s.substring(0,s.indexOf("="));若输入中没有”=“ 则将触发Error
所以:设计程序是应该考虑用户的输入会不会导致程序的Error甚至是Failure,当用户输入不符合我们的需要时,应当及时提示输入有误并重新输入。


结对编程(二)

标签:

原文地址:http://www.cnblogs.com/qindehua/p/5405917.html

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