switch case 变量生命周期

  case 2:
                    //新增图书
                    System.out.println("\n图书信息列表-->");
                    System.out.print("请输入新增图书名称:");
                    String name = input.next();
                    //是否能新增图书,如果货架满了(6)则无法添加false能添加true

                    boolean flagAdd = false;
                    for (int i = 0;i<names.length;i++) {
                        if (names[i] == null) {
                            flagAdd = true;
                            names[i] = name;
                            System.out.println("图书《"+name+"》添加成功!");
                            break;
                        }
                    }
                    if (!flagAdd) {
                        System.out.println("对不起,货架已满,无法添加图书!");
                    }
                    break;
                case 3:
                    //借阅图书
                    System.out.println("请输入你要借阅的书籍" );
                    String name=input.next(); //标红
                    for (int i=0,i<names.length) //i处标红
                    break;

今天在实现一个简单的图书管理程序的时候,遇到Switch case分支选项,在编写case3的时候,name和i变量标红

思考了一下应该是生命周期的问题,case 2中定义的name 的生命周期并没有结束,对于一个局部变量,它的作用域为它所定义的地方到它所在的语句块结束为止,所以将case2,case3前打{}即可

case 2:{  
59.	                    //新增图书  
60.	                    System.out.println("\n图书信息列表-->");  
61.	                    System.out.print("请输入新增图书名称:");  
62.	                    String name = input.next();  
63.	                    //是否能新增图书,如果货架满了(6)则无法添加false能添加true  
64.	  
65.	                    boolean flagAdd = false;  
66.	                    for (int i = 0;i<names.length;i++) {  
67.	                        if (names[i] == null) {  
68.	                            flagAdd = true;  
69.	                            names[i] = name;  
70.	                            System.out.println("图书《"+name+"》添加成功!");  
71.	                            break;  
72.	                        }  
73.	                    }  
74.	                    if (!flagAdd) {  
75.	                        System.out.println("对不起,货架已满,无法添加图书!");  
76.	                    }  
77.	                    break;  
78.	                }  
79.	                case 3: {  
80.	                    //借阅图书  
81.	                    System.out.println("请输入你要借阅的书籍");  
82.	                    String name = input.next();  
83.	                    boolean findboox=false;        //true可借阅 ,false不可借阅  
84.	                    for (int i=0;i<names.length;i++) {  
85.	                        if (name.equals(names[i]) && states[i] == 0) {  
86.	                                findboox = true;//借阅的书籍书库里面拥有  
87.	                                states[i] = 1;//成功借阅  
88.	                                break;  
89.	                        }  
90.	                   else{  
91.	                            findboox=false;  
92.	                        }  
93.	                    }  
94.	                        if (findboox==true){  
95.	                            System.out.println(name + "您已成功借阅");  
96.	                        }  
97.	                        else{  
98.	                            System.out.println(name+"已被借走或不存在");  
99.	                        }  
100.	                        break;  
101.	                    }  
102.	  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值