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

来源:1-9 经验总结

极客小白

2016-04-10 11:37

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回答

  • 慕粉3170877
    2016-05-12 21:17:23
    已采纳

    foreach操作数组语法:

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

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

    极客小白

    非常感谢!

    2016-05-31 22:11:15

    共 1 条回复 >

  • 极客小白
    2016-04-10 15:18:50

    神马?请教详解

  • 慕沐1271959
    2016-04-10 13:37:14

    与变量的作用域有关?

Java入门第三季

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

409769 学习 · 4543 问题

查看课程

相似问题