亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

我想問一下,輸入錯誤之后怎樣才能讓用戶重新輸入呢?

package?com.jersey;

import?java.util.*;

import?javax.sql.rowset.spi.SyncFactoryException;


public?class?LibSystem?{
	static?Book[]?books={new?Book("論語","000001"),new?Book("老子","000002"),new?Book("java編程思想","000003")};
	public?static?void?main(String[]?args){

		System.out.println("歡迎來到iLibrary圖書檢索系統!");
		Scanner?input=new?Scanner(System.in);
		System.out.println("請選擇:1.按書名檢索?2.按編號檢索?3.退出系統");
		
		int?n=input.nextInt();
		switch(n){
			case?1:				
				System.out.println("請輸入您所要檢索的圖書名稱");
				String?a=input.next();
				try{
					String?result=SearchByName(a);
					System.out.println("您所選的《"+result+"》已找到");
					}catch(Exception?e){
						e.printStackTrace();
						System.out.println("您檢索的圖書不存在!");
						
					}
					break;
			case?2:
				System.out.println("請輸入您所要檢索的圖書編碼");
				String?b=input.next();
				try{
				String?result2=SearchByCode(b);
				System.out.println("您所選的《"+result2+"》已找到");
				}catch(Exception?e){
					e.printStackTrace();
					System.out.println("您輸入的編碼有誤,請重新輸入!");
				}
				break;
			case?3:
				System.exit(0);
			default:
				System.out.println("您的輸入有誤!請重新輸入!");
		}
		
		}
		
		public?static?String?SearchByName(String?a)?throws?Exception{
			
			for(int?i=0;i<books.length;i++){
				if(a.equals(books[i].name)){
					continue;
				}
				else{
					throw?new?Exception();
				}
				
			}
			return?a;
		}
		public?static?String?SearchByCode(String?b)?throws?Exception{
			String?s2=b;
			for(int?i=0;i<books.length;i++){
				if(b.equals(books[i].code)){
					s2=books[i].name;
					break;
				}
				else{
					throw?new?Exception();
				}
				}
			return?s2;	
	}
	
		
}

諸位還有什么改進的建議也請告訴我,謝謝!

正在回答

3 回答

	public?static?void?main(String[]?args)?{
		service();
	}
	
	public?static?void?service(){
		System.out.println("歡迎來到iLibrary圖書檢索系統!");
		
		Scanner?input?=?new?Scanner(System.in);
		System.out.println("請選擇:1.按書名檢索?2.按編號檢索?3.退出系統");
		int?n?=?input.nextInt();
		switch?(n)?{
		case?1:
			System.out.println("請輸入您所要檢索的圖書名稱");
			String?a?=?input.next();
			try?{
				String?result?=?SearchByName(a);
				System.out.println("您所選的《"?+?result?+?"》已找到");
			}?catch?(Exception?e)?{
				e.printStackTrace();
				System.out.println("您檢索的圖書不存在!");
			}
			service();
			break;
		case?2:
			System.out.println("請輸入您所要檢索的圖書編碼");
			String?b?=?input.next();
			try?{
				String?result2?=?SearchByCode(b);
				System.out.println("您所選的《"?+?result2?+?"》已找到");
			}?catch?(Exception?e)?{
				e.printStackTrace();
				System.out.println("您輸入的編碼有誤,請重新輸入!");
			}
			service();
			break;
		case?3:
			System.out.println("結束!");
			break;
		default:
			System.out.println("您的輸入有誤!請重新輸入!");
			service();
		}
	}
	
	public?static?String?SearchByName(String?a)?throws?Exception?{

		return?"by?name";
	}

	public?static?String?SearchByCode(String?b)?throws?Exception?{
		return?"by?code";
	}

我這沒有Book類,模擬一下吧

2 回復 有任何疑惑可以回復我~
#1

jerseyyu 提問者

謝謝!
2015-08-12 回復 有任何疑惑可以回復我~
#2

jerseyyu 提問者

非常感謝!
2015-08-15 回復 有任何疑惑可以回復我~
#3

jerseyyu 提問者

我有一個疑問,在定義某方法的時候調用其本身是怎樣的原理,感覺有點奇怪 0.0
2015-08-26 回復 有任何疑惑可以回復我~
#4

管理員 回復 jerseyyu 提問者

上面代碼是在你的代碼基礎上修改的,也就花了兩三分鐘,并沒有想太多,可能不太好理解。調用本身其實跟調用其他方法一樣的,不過一般有個結束條件。
2015-08-27 回復 有任何疑惑可以回復我~
#5

武庚_Rehan

這個是截圖嗎?是怎么截成這樣的?謝謝回答
2015-09-02 回復 有任何疑惑可以回復我~
#6

陶路

那個default后面的service();是做什么的 謝謝解答
2015-10-19 回復 有任何疑惑可以回復我~
#7

mr1024 回復 陶路

....調用方法
2015-11-05 回復 有任何疑惑可以回復我~
查看4條回復

示例代碼中的異常處理也有問題啊,壓根不能判斷輸入的信息是否與已有數據相匹配,而且真心不明白這里的兩個異常處理有什么作用!

1 回復 有任何疑惑可以回復我~

也可以嘗試一下

boolean ?retry=true;

? ? ? ? ? ? ? ? ?while(needretry){

? ? ? ? ? ? ? ? ? try{

????????????????????????????????//執行的代碼塊1

????????????????????????????????retry=false;//沒有錯誤不需要重來

? ? ? ? ? ? ? ? ? ? ? }catch(Exception e){

????????????????????????????????????//執行代碼塊2

????????????????????????????????????? retry=true;//有錯誤,要重來 ?

????????????????????????????????????????????}

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}

這個模板只是大概的,你可以根據需要添加其他條件語句及判斷。

親測有效

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

jerseyyu 提問者

感謝,學習了
2015-08-26 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

我想問一下,輸入錯誤之后怎樣才能讓用戶重新輸入呢?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號