本人小白,零基础学JAVA
写代码遇到下面的问题
下面的代码 问题是  for循环了加了else 后,前面的if判断好像失效了
public static void delete(String[] name, boolean[] statu, int[] date,
int[] count) {
Scanner st = new Scanner(System.in);
System.out.println("请输0入要删掉DVD的名字:");
String in = st.next();
for (int i = 0; i < name.length; i++) {
if (name[i].equals(in)) {
name[i] = null;
statu[i] = false;
date[i] = 0;
count[i] = 0;
System.out.println("删除" + "《" + in + "》" + "成功!\n输入0返回主菜单");

int a = st.nextInt();
returnMenu(a, name, statu, date, count);

}else if(!(name[i].equals(in))) {
System.out.println("没有查阅到该DVD或者你的输入有误!\n请输入:0 返回主菜单");

int a = st.nextInt();
returnMenu(a, name, statu, date, count);



}

}

解决方案 »

  1.   

    你这个不对吧,你循环第一次,获得一个name,如果不是输入的内容,就判断为没有这个name,然后就返回了,你后面的name不判断了?
      

  2.   

    是加了后 name[i] 输入正确的也输出后面的else,,后来没有办法 只有定义一个boolean flag  把else去掉了
    在循环外又写了个if
      

  3.   

    if (name[i].equals(in)) {
    name[i] = null;
    statu[i] = false;
    date[i] = 0;
    count[i] = 0;
    System.out.println("删除" + "《" + in + "》" + "成功!\n输入0返回主菜单");int a = st.nextInt();
    returnMenu(a, name, statu, date, count);}else{
    System.out.println("没有查阅到该DVD或者你的输入有误!\n请输入:0 返回主菜单");int a = st.nextInt();
    returnMenu(a, name, statu, date, count);
      

  4.   

    我也是新手,但是好像没看到你的boolean判断在哪里
      

  5.   

    public static void loan(String[]name,boolean[]statu,int[]date,int count[]){
    Scanner st =new Scanner(System.in);
    boolean flag=false;
    System.out.println("请输入你要借出的DVD:");
    String in =st.next();
    for(int i=0;i<name.length;i++){
    if(statu[i]==true&name[i].equals(in)){

    statu[i]=false;
    flag =true;
    //System.out.println("《"+in+"》"+"借出成功");
    //int a =st.nextInt();
    //returnMenu(a,name,statu,date,count);
    }

    }
    if(flag==true){
    System.out.println("《"+in+"》"+"借出成功");
    }else{
    System.out.println("你的输入错误或者没有这个DVD");
    }
    System.out.println("输入0返回主菜单!");
    int a =st.nextInt();
    returnMenu(a,name,statu,date,count);
    }
    这是 看别人修改后的