| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1420 人关注过本帖
标题:[求助]try{}catch{}语句实现循环时的问题,高手帮忙看看。
只看楼主 加入收藏
hanssion
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-11-1
收藏
 问题点数:0 回复次数:12 
[求助]try{}catch{}语句实现循环时的问题,高手帮忙看看。
怎么实现输入一个字符,要求是int型,如果不是则重新输入,直到输入正确;
小弟初学JAVA,高手看下下面的程序:
import javax.swing.JOptionPane;
class A
{
public static void main(String[] args)
{String s=JOptionPane.showInputDialog("输入一个数");
int m=0,n=0;
while(n==0)
{try
{
m=Integer.parseInt(s);
n=1;
}
catch (Exception e)
{
System.out.println("please input a integer");
}
}
System.out.println(m);
}
}
但是这样行不通,会一直执行catch里面的语句,成了一个死循环。是不是因为异常类对象还没有被释放的缘故?但JAVA并不提供手动释放对象。。。对于try语句是在出现异常的时候catch才捕捉异常类的对象还是不管是否有发生异常,只要有相应异常类对象存在就转入catch语句?高手回答下,有什么错误请指正,有错才会有进步。。

[此贴子已经被作者于2007-10-23 12:14:49编辑过]

搜索更多相关主题的帖子: catch try 语句 
2007-10-22 13:11
trhack
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-10-22
收藏
得分:0 
catch (Exception e)
我想知道你这定义的 变量e 去哪了?好象到后面没有抛出异常吧?我也是菜菜

2007-10-22 13:44
hanssion
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-11-1
收藏
得分:0 

这个不是我自定义的异常类,是包里自带的。。

2007-10-22 13:54
hanssion
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-11-1
收藏
得分:0 

顶一个,期待有人解答。。

2007-10-22 20:09
hanssion
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-11-1
收藏
得分:0 
顶,还没人回答。。
2007-10-23 04:06
hanssion
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-11-1
收藏
得分:0 
没人解决。。看来要改标题了
2007-10-23 12:13
Gramary
Rank: 4
等 级:贵宾
威 望:13
帖 子:769
专家分:0
注 册:2007-7-9
收藏
得分:0 
while(true)
{
try
{
m=Integer.parseInt(s);
break;
}
catch (Exception e)
{
System.out.println("please input a integer");
}


}
System.out.println(m);
写成这样就可以了

学编程不能急,要慢慢来。
2007-10-23 12:45
xxjzx
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-5-16
收藏
得分:0 

你没有判断输入的是否是整数呀!而且必须要将字符串转成字符再一个个判断才行!
看这样改一下行不行!不过输出语句有多条!你自己再看着改一下吧!还有就是这只是判断输入的是不是整数,输入不对并没有返回重新输入!如果要返回并重新输入的话,你只要将jOptionPane1控件重new一下即可!
import javax.swing.JOptionPane;
class A
{
public static void main(String[] args)
{
String s = jOptionPane1.showInputDialog("输入一个数");
char[] zf = new char[s.length()];
try {
for (int i = 0; i < zf.length; i++) {
zf[i] = s.charAt(i);
if (Character.isDigit(zf[i]) == false) {
System.out.println("输入的不是数字");
} else if (s.indexOf('.') != -1) {
System.out.println("输入中包括小数点不是整数!");
} else {
System.out.println("输入的是整数");
}
}

}
catch (Exception ex) {
}
}

[此贴子已经被作者于2007-10-23 14:07:27编辑过]


一起来玩编程的游戏吧!
2007-10-23 13:32
xxjzx
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-5-16
收藏
得分:0 
版主
测了一下你的方法,好像还是死循环!

一起来玩编程的游戏吧!
2007-10-23 13:52
hanssion
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-11-1
收藏
得分:0 

感谢以上的回答,问题未解决,持续观望中。

2007-10-23 20:24
快速回复:[求助]try{}catch{}语句实现循环时的问题,高手帮忙看看。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030958 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved