问答详情
源自:1-9 经验总结

返回值的问题老师求助!!

private static String getBookByName(String[] books) {
		System.out.println("请输入书名:");
		String name=input.next();
		for(int i=0;i<books.length;i++){
			if(name.equals(books[i])){
				
				return books[i];
			}else{
				return "1111";
			}
				
//		}throw new Exception("图书不存在");	
			
		}
	}	

使用if  else成对的判断语句在使用返回值为什么程序认定我没有返回值呢  equals返回值是true啊不是囊括了所有可能的情况吗

提问者:sw_0001 2014-11-12 22:31

个回答

  • Darren_Huang
    2015-01-06 21:42:21

    private static String getBookByName(String[] books) {
            System.out.println("请输入书名:");
            String name=input.next();
            for(int i=0;i<books.length;i++){
                if(name.equals(books[i])){
                    return books[i];
                }
            }
            return "1111";
        }


  • Darren_Huang
    2015-01-06 21:30:59

    private static String getBookByName(String[] books) {
            System.out.println("请输入书名:");
            String name=input.next();
            for(int i=0;i<books.length;i++){
                if(name.equals(books[i])){
                     
                    return books[i];
    //            }else{
                    return "1111";
    //            }
                     
    //      }throw new Exception("图书不存在");   
                 
            }
        }


  • sw_0001
    2014-11-12 23:18:56

    谢谢!我想着模仿老师那个写,但是没写抛出异常的时候发现的这个返回值问题,在for循环里这样就不行了!!那么在不抛异常的情况下怎么才能与数组里的元素做比较判断还能作为返回值呢

  • 好的吧
    2014-11-12 22:49:11

    这么写明显逻辑不对(暂且不管)  你还有种情况没有考虑到 就是 不走for循环的换 没有返回值 所以你要在for循环外加 return "";