为了账号安全,请及时绑定邮箱和手机立即绑定

求解答!!大神

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();

}

}


}


正在回答

2 回答

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

0 回复 有任何疑惑可以回复我~
#1

皓婆子 提问者

能具体点吗??不懂
2015-08-02 回复 有任何疑惑可以回复我~
#2

琳小白 回复 皓婆子 提问者

name和book是两个不同的变量,它们的地址不一样,用==可以看成是地址相同,并且内容相同才会返回true,而equal只是比较内容,内容相同即可返回true。
2015-10-02 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409792    人
  • 解答问题       4340    个

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

进入课程

求解答!!大神

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信