A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 人生无处不阳光 中级黑马   /  2013-12-5 11:54  /  1005 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 人生无处不阳光 于 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;

        }
}

评分

参与人数 1技术分 +1 收起 理由
贺奕凯 + 1

查看全部评分

1 个回复

倒序浏览
很简单,你只要把 Scanner x=new Scanner(System.in);这句放入try里面就可以了

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马