黑马程序员技术交流社区
标题:
关于异常的处理,求大神帮忙
[打印本页]
作者:
人生无处不阳光
时间:
2013-12-5 11:54
标题:
关于异常的处理,求大神帮忙
本帖最后由 人生无处不阳光 于 2013-12-5 20:30 编辑
下面是我的代码,关于switch 只能输入整数 , 不能输入字符的问题,我给switch加了个 try catch,外层是个while死循环,可是如果进入了catch里就一直循环 不会停下来 怎么办? 主要看main方法下的代码就行,知道的告诉我一下 谢谢了
import java.util.*;
public class Student {
public static void main(String[] args) {
Scanner x=new Scanner(System.in);
spgl gl=new spgl();
while(true){
System.out.println("请按提示选择以下功能:");
System.out.println("添加食品请按1");
System.out.println("查找食品信息请按2");
System.out.println("修改食品价格请按3");
System.out.println("删除食品信息请按4");
System.out.println("退出请按0");
try{
int shuru=x.nextInt();
switch(shuru){
case 1:
System.out.println("请输入编号:");
String on=x.next();
System.out.println("请输入名称:");
String name=x.next();
System.out.println("请输入价格:");
float money=x.nextFloat();
Sp sp=new Sp(on,name,money);
gl.sptj(sp);
}
}
catch( InputMismatchException in)
{
System.out.println("请输入正确编号!");
}
}
}
}
class spgl{
private ArrayList<Sp> aa=null;
spgl(){
aa=new ArrayList<Sp> ();
}
public void sptj(Sp sp){
aa.add(sp);
System.out.println("商品添加成功");
}
public void spcz(String on){
int i;
for (i = 0; i < aa.size(); i++) {
Sp sp=aa.get(i);
if(on.equals(sp.getOn())){
System.out.println("此商品信息为:");
System.out.println("编号:"+sp.getOn());
System.out.println("名称:"+sp.getName());
System.out.println("金额:"+sp.getMoney());
}
}
if(i==aa.size())
System.out.println("没有此商品");
}
public void spxg(String on,float money){
int i;
for (i = 0; i < aa.size(); i++) {
Sp sp=aa.get(i);
if(on.equals(sp.getOn())){
sp.setMoney(money);
System.out.println("价格修改成功");
System.out.println(aa.get(i));
}
}
if((i==aa.size()))
System.out.println("没有找到此商品");
}
public void spsc(String on){
if(aa.size()==0){
System.out.println("您的仓库已经没有商品");
}
int i;
for (i = 0; i < aa.size(); i++) {
Sp sp=aa.get(i);
if(sp.getOn().equals(on)){
aa.remove(i);
System.out.println("删除成功");
break;
}
}
if((i==aa.size())&&(i!=0))
System.out.println("没有找到此商品");
}
}
class Sp{
String on;
public String getOn() {
return on;
}
public void setOn(String on) {
this.on = on;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getMoney() {
return money;
}
public void setMoney(float money) {
this.money = money;
}
String name;
float money;
Sp(String on,String name,float money){
this.on=on;
this.name=name;
this.money=money;
}
}
作者:
Jim-剣◆﹏
时间:
2013-12-5 13:40
很简单,你只要把 Scanner x=new Scanner(System.in);这句放入try里面就可以了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2