求解答!!大神

来源:1-9 经验总结

皓婆子

2015-08-02 11:17

import java.util.Scanner;



public class Exe {


public static void main(String[] args) {

// TODO Auto-generated method stub

Exe.show();


}

public static String[] books={"计算机科学","C语言程序设计","数据结构","微积分"};

public static void show(){

Scanner input=new Scanner(System.in);

System.out.println("1-按照名称查找图书,2-按照序号查早图书");

try{

int num=input.nextInt();

switch(num){

case 1:

System.out.println("请输入图书名称");

   String name=input.next();

   for(int i=0;i<books.length;i++){

    if(name.equals(books[i])){            //为什么这里我写成"name==books[i]运行结果会是不存在呢

    System.out.println("books:"+books[i]);

    return;

    }

   

   

   

   

   }

   System.out.println("图书不存在,请重新输入");

    show();

   

case 2:

System.out.println("请输入图书序号");

int n=input.nextInt();

for(int i=0;i<books.length;i++){

if(n==i){

System.out.println("books:"+books[n]);

return;

}

}

System.out.println("图书不存在,请重新输入序列号");

show();

}

}

catch(Exception e){

System.out.println("命令输入有误,请重新输入");

show();

}

}


}


写回答 关注

1回答

  • 深白
    2015-08-02 16:42:59

    字符串的equals()方法是判断内容是否一样,而用==的话就是判断引用是否一致。

    琳小白 回复皓婆子

    name和book是两个不同的变量,它们的地址不一样,用==可以看成是地址相同,并且内容相同才会返回true,而equal只是比较内容,内容相同即可返回true。

    2015-10-02 22:08:29

    共 2 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409784 学习 · 4339 问题

查看课程

相似问题