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

异常处理之借书系统编写,为什么用foreach()遍历引用类型数组,遍历对象一栏也就是数组名books会报错?但是用for()语句来遍历数组books就不会报错,且数组前必须加public static?求大神解,在线等急。

package library1;

public class Book {
	int num;
	String name;
	public Book(int num,String name){
		this.num=num;
		this.name=name;
	}
	 Book[]books={new Book(1,"数据结构"),
			new Book(2,"线性数学"),new Book(3,"高等数学")};

}
package library1;

import java.util.Scanner;

public class Library {
	public void library(){
		System.out.println("输入命令:1.按照名称查找图书"
	+"2.按照序号查找图书");
		try{
		Scanner sc=new Scanner(System.in);
		int a=sc.nextInt();
		if(a==1){
			library1();
		}else if(a==2){
			library2();
		}else{
			System.out.println("您输入的数据有误,请重新输入(1或2)");
		}
		}catch(Exception e){
			System.out.println("命令输入有误,请提示输入命令");
			library();//重新调用方法,实现数据回滚
		}
	}
	//按照图书名称查找
	public void library1(){
		System.out.println("请输入图书名称:");
		try{
		Scanner sc=new Scanner(System.in);
		String b=sc.next();
		for(Book book:books){
			if(book.name.equals(b)){
				System.out.println("books:"+book.name);
				break;
			}
		}
		}catch(Exception e){
			System.out.println("图书不存在!");
			library1();
		}
	}
	//按照图书序号查找
	public void library2(){
		System.out.println("请输入图书名称:");
		try{
		Scanner sc=new Scanner(System.in);
		int c=sc.nextInt();
		for(Book book:books){
			if(book.num==c){
				System.out.println("books:"+book.name);
				break;
			}
		}
		}catch(Exception e){
			System.out.println("图书不存在!");
			library2();
		}
	}
	

}
package library1;

public class Initail {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		System.out.println("欢迎登陆借书系统");
		Library lb=new Library();
		lb.library();

	}

}


正在回答

3 回答

foreach操作数组语法:

foreach(元素类型  元素变量: 遍历对象){
执行代码          
}

我觉得是是你没有搞清楚这个概念问题,另外我感觉你的程序写的不错!赞

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

极客小白 提问者

非常感谢!
2016-05-31 回复 有任何疑惑可以回复我~

神马?请教详解

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

与变量的作用域有关?

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

举报

0/150
提交
取消

异常处理之借书系统编写,为什么用foreach()遍历引用类型数组,遍历对象一栏也就是数组名books会报错?但是用for()语句来遍历数组books就不会报错,且数组前必须加public static?求大神解,在线等急。

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号