问题遇到的现象和发生背景
怎么增加图书时重名也能加要么不同名也加不上
问题相关代码,请勿粘贴截图
package com.unit4.test;
import java.util.Scanner;
public class test5 {
static String[] nameArray={"Java教程","py入门","c语言","ps"};
static String[] outhorArray= {"张三","李四","王二","麻子"};
static String[] stateArray= {"可借","可借","不可借","不可借"};
static int[] borrowCount= {10,20,35,45};
static Scanner y=new Scanner(System.in);
//增加图书
public static void zengjiabooks() {
System.out.println("请输入书名:");
String name1=y.next();
System.out.println("请输入作者:");
String name2=y.next();
int msg=1;
for(String x:nameArray) {
if (x.equals(name1)) {
msg=2;
}
}
if (msg==1 ) {
String []nameArray2=new String [nameArray.length+1];
String []outhorArray2=new String [nameArray.length+1];
String []stateArray2=new String [nameArray.length+1];
int [] borrowCount2=new int [nameArray.length+1];
for(int i=0;i<nameArray.length;i++) {
nameArray2[i]=nameArray[i];
outhorArray2[i]=outhorArray[i];
stateArray2[i]=stateArray[i];
}
nameArray2[nameArray2.length-1]=name1;
outhorArray2[nameArray2.length-1]=name2;
stateArray2[nameArray2.length-1]="可借";
borrowCount2[nameArray2.length-1]=0;
chakansuoyoubooks(nameArray2,outhorArray2,stateArray2,borrowCount2);
}else {
System.out.println("此书名已存在!");
}
}
//查看所有图书
public static void chakansuoyoubooks(String []nameArray,String []outhorArray,String []stateArray,int[] borrowCount) {
for(int i=0;i<nameArray.length;i++) {
System.out.println(nameArray[i]+","+outhorArray[i]+","+stateArray[i]+","+borrowCount[i]);
}
}
//登入
public static String dengru() {
String uname="a";
String umima="123";
String msg="登入失败";
System.out.println("请输入用户名:");
String name=y.next();
System.out.println("请输入密码:");
String mima=y.next();
if (uname.equals(name)&&umima.equals(mima)) {
msg="登入成功";
}
return msg;
}
//主菜单
public static void zhucaidan() {
System.out.println("主菜单");
System.out.println("1,查看所有图书");
System.out.println("2,增加图书");
System.out.println("3,删除图书");
System.out.println("4,借出图书");
System.out.println("5,归还图书");
System.out.println("请选择菜单编号:");
}
public static void main(String[] args) {
while(1==1) {
String msg= dengru();
if (msg.equals("登入失败")) {
System.out.println("登入失败,请重新登入!");
}else if(msg.equals("登入成功")){
System.out.println("登入成功!");
while(1==1) {
zhucaidan();
int xuanze1=y.nextInt();
if (xuanze1==1) {
chakansuoyoubooks(nameArray,outhorArray,stateArray,borrowCount);
}else if (xuanze1==2) {
zengjiabooks();
}else if (xuanze1==3) {
}else if (xuanze1==4) {
}else if (xuanze1==5) {
}
}
}
}
}
}
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
break跳出循环
continue跳过该次循环继续下一次循环
目前的判断逻辑重名会给出提示,不会添加。不重名的进行添加,然后输出添加后的nameArray2是正常,但这只是假象,每次通过命令查看的还是nameArray,所以就没添加上。
建议将book封装成实体类,使用List来存储book。
for(String x:nameArray) {
if (x.equals(name1)) {
msg=2;
}
这段代码怎么跳过了?