作者PsMonkey (痞子军团团长)
看板java
标题Re: [问题] 请问有关於判断输入是否为数字及重输入
时间Mon Dec 24 18:30:19 2012
被点名了,但是推文实在不好讲...
那就顺便当个彻底的坏人
※ 引述《pugboy ()》之铭言:
: 我的code如下:
: package Book;
: import java.io.*;
: interface Score{ //介面
//...
: }
: class CPostgraduate implements Score { //研究生类别实作介面
//...
: }
: class CUndergraduate implements Score { //大学生类别实作介面
//...
: }
其实你仔细想一下就会发现上面这些 OO 跟你的问题一点关系也没有
或着说,你应该在上网 po 文章之前就先测试一下
你的问题跟 OO 到底有没有关系
至少从你给的错误讯息上来说,没有关系
就算有关系,我也会先排除掉然後试试看会不会一样
这就跟你买乐透会希望能先砍掉几个不会中的号码一样 [咦咦?]
能少点不确定性总是好的
: public class Goodself { //主程式
: public static void main(String[]args) { //main进入点
: BufferedReader keyin = new BufferedReader(new
: InputStreamReader(System.in));
: System.out.println("请输入:");
: try{ //问题点! 如果是数字就进入
: int input = Integer.parseInt(keyin.readLine());
: }catch(IOException | NumberFormatException e){//如果不是数字就抛出例外
: //且印出错误讯息
: System.out.println("不是数字");
: }finally{
: CPostgraduate p1 = new CPostgraduate(input); //印出总结果
: System.out.println("研究所成绩,"+p1.results());
: CUndergraduate u1 = new CUndergraduate(input);
: System.out.println("大学成绩,"+u1.results());
: }
: }
: }
推 LaPass:第一次看到 IOException | NumberFormatException e 的写法 12/24 10:38
我也是今天第一次在程式码当中看到 [遮脸]
推 tomoyaken14:没记错的话,这边应该是finally会出错... 12/24 10:47
→ ssccg:try里面宣告的变数scope只在try block 12/24 11:21
→ ssccg:把int input移到try外面就好 12/24 11:23
推 PsMonkey:先别管什麽语法了,你听过语意与商业逻辑要尽量相符吗? 12/24 12:04
: 请教Ps板主,刚刚上网查了一下了解了何谓商业逻辑...但是语意是什麽还不太懂
: 想请教您什麽是语意还有我这样的写法哪里不相符呢?
: 麻烦 谢谢了
我是针对 ssccg 的推文所作的防御性推文(什麽鬼?)
商业逻辑只是个泛称,不用讲究他的明确定义
不如我再来说个故事(拜托不要!)
你跟心仪的女生告白
你可以直接了当地说:「我真 xx 的爱你」
也可以说:「我
逼—的
逼—你
逼—的
逼—(碍於版规...)
喔对了,打是情、骂是爱,你了齁?」
如果那个女生够冷静可以作正确的逻辑推演
那这两种方式的表达内容是一样的
但是你要用哪一种? 或着该问:「你觉得哪一种比较『保险』?」
好,来看一下 try-catch-finally 的意思
以我的习惯,这个
try{
//A1
//A2
//A3
}catch(Exception e){
//BBB
}finally{
//CCC
}
//DDD
会解释成:
去踹 A 家三兄弟几脚,
如果发生什麽意外(也就是 A3 可能没踹到)就交给 BBB 处理,
无论 AAA 是死是活、还是有没有发生意外
反正最後一定要作 CCC
最後是 DDD 作结尾
如果你按照 ssccg 的方式,把 input 拿到 try-catch 外头宣告
程式应该就可以执行了,说不定你还会觉得执行结果正常
但是套上这个剧本,你觉得合理吗?
无论输入的是什麽,反正我一定要知道他(们)及不及格
哪怕人家已经告诉你他们的分数不是数字了...
当然,你要写什麽功能是你决定的
我这个人又鸟又烂又爱 A 钱,我的意见你参考参考就好
推 swpoker:不然IDE直接就错误了~ 12/24 13:39
: 我是用IDE....还是可以执行阿...
我想,如果这不是什麽 Java 7/8 的新功能(机率应该不大)
那,你先跟大家说你用哪个 IDE,然後赶快换成 Eclipse XDXD
--
钱锺书:
说出来的话
http://www.psmonkey.org
比不上不说出来的话
Java 版 cookcomic 版
只影射着说不出来的话
and more......
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.202.140
1F:推 LaPass:等等,也就是说真的有 IOExce... | Number... 这种用法!? 12/24 21:03
2F:推 luoqr:java7语法 12/24 21:22
3F:推 LaPass:该找时间去充电了 orz..... 12/24 23:36
4F:推 pugboy:感谢板主浅显易懂的热心回覆,还有我用的是NetBeans 谢谢! 12/25 14:26