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.