返回列表 發帖

例外處理 (三)

本帖最後由 tonyh 於 2019-8-31 14:38 編輯

猜數字遊戲 的程式碼, 進行例外處理,
使程式執行時, 萬一使用者不小心將0打成o時, 遊戲得以繼續進行.

原執行狀況:


進行例外處理後:


本帖隱藏的內容需要回復才可以瀏覽

  1. import java.util.Scanner;


  2. public class Hello {

  3.         public static void main(String[] args) {
  4.                 // TODO 自動產生的方法 Stub
  5.                
  6.         double x;
  7.         int y ,s=99 ,t=1 ,n=0;
  8.         System.out.println("***猜數字遊戲***");
  9.         System.out.print("請在1~99間猜一個數:");
  10.         x=(int)(Math.random()*99+1);
  11.         for(;;)
  12.         {
  13.                 try
  14.                 {
  15.                         Scanner c=new Scanner(System.in);
  16.                 n++;
  17.                 y=c.nextInt();
  18.                 if(x==y)
  19.                 {
  20.                     System.out.println("正確答案");
  21.                     System.out.println("你猜了"+n+"次");
  22.                     break;
  23.                 }else
  24.                 {
  25.                     if(y>x)
  26.                     {
  27.                         s=y-1;
  28.                     }else
  29.                     {
  30.                         t=y+1;
  31.                     }
  32.                     System.out.println("答錯了");
  33.                     System.out.print("請在"+t+"~"+s+"間猜一個數:");
  34.                 }
  35.                 }catch(Exception e)
  36.                 {
  37.                         System.out.println("你輸入錯誤!!!");
  38.                         System.out.print("請在"+t+"~"+s+"間猜一個數:");
  39.                 }
  40.         }
  41.         }

  42. }
複製代碼

TOP

  1. import java.util.Scanner;
  2. public class Ch01 {

  3.         public static void main(String[] args)
  4.         {
  5.                
  6.                 int n=(int)(Math.random()*99)+1;
  7.                 int start=1,end=99,ans,count=0;
  8.                 for(;;)
  9.                 {
  10.                         try
  11.                         {
  12.                                 Scanner s=new Scanner(System.in);
  13.                             count++;
  14.                             System.out.print("請輸入一個"+start+"到"+end+"的數字:");
  15.                             ans=s.nextInt();
  16.                        
  17.                                 if(ans>n)
  18.                                 {
  19.                                         end=ans-1;
  20.                                        
  21.                                 }
  22.                                 else if(ans<n)
  23.                                 {
  24.                                         start=ans+1;
  25.                                 }
  26.                             else
  27.                                 {
  28.                                       System.out.println("恭喜您答對了!!!");
  29.                           System.out.println("總共猜了: "+count+"次!!");
  30.                           break;
  31.                                 }
  32.                         }
  33.                         catch(Exception e)
  34.                         {
  35.                                 System.out.println("輸入錯誤!請輸入整數!");
  36.                                
  37.                         }
  38.                 }

  39.         }

  40. }
複製代碼

TOP

  1. import java.util.Scanner;
  2. public class ch17
  3. {
  4.     public static void main(String args[])
  5.     {
  6.          
  7.          int start=1,end=99,count=0;
  8.          int ans=(int)(Math.random()*99+1);
  9.          int guess;
  10.          while(true)
  11.          {
  12.              try
  13.              {
  14.                  Scanner c=new Scanner(System.in);
  15.                  count++;
  16.                  System.out.print("猜一個"+start+"~"+end+"之間的數字: ");
  17.                  guess=c.nextInt();
  18.                  if(guess>ans)
  19.                  {
  20.                      end=guess-1;
  21.                  }else if(guess<ans)
  22.                  {
  23.                      start=guess+1;
  24.                  }else
  25.                  {
  26.                      System.out.println("恭喜你猜對了!");
  27.                      System.out.println("總共猜了"+count+"次!");
  28.                      break;
  29.                  }
  30.              }catch(Exception e)
  31.              {
  32.                  System.out.println("輸入錯誤!請輸入整數!");
  33.              }
  34.          }
  35.     }
  36. }
複製代碼

TOP

本帖最後由 蔡依宸 於 2019-8-31 15:03 編輯
  1. import java.util.Scanner;
  2. public class Class
  3. {
  4.     public static void main(String args[])
  5.     {
  6.          
  7.          int a=1,b=99,n=0;
  8.          int ans=(int)(Math.random()*99+1);
  9.          int guess;
  10.          while(true)
  11.          {
  12.              try
  13.              {
  14.                  Scanner s=new Scanner(System.in);
  15.                  n++;
  16.                  System.out.print("猜一個"+a+"~"+b+"之間的數字: ");
  17.                  guess=s.nextInt();
  18.                  if(guess>ans)
  19.                  {
  20.                      System.out.println("猜太大了!");
  21.                      b=guess;
  22.                  }else if(guess<ans)
  23.                  {
  24.                      System.out.println("猜太小了!");
  25.                      a=guess;
  26.                  }else
  27.                  {
  28.                      System.out.println("恭喜猜對了!");
  29.                      System.out.println("總共猜了"+n+"次!");
  30.                      break;
  31.                  }
  32.              }catch(Exception e)
  33.              {
  34.                  System.out.println("不要亂來!請輸入整數!");
  35.              }
  36.          }
  37.     }
  38. }
複製代碼

TOP

  1. import java.util.Scanner;
  2. public class Ch66 {

  3.         public static void main(String[] args) {
  4.                 // TODO 自動產生的方法 Stub

  5.                 int target = (int)(Math.random()*99)+1;


  6.                 int start=1,end=99,ans,count=0;
  7.                 while(true)
  8.                 {
  9.                         try
  10.                         {
  11.                                 Scanner scn = new Scanner(System.in);                                   

  12.                                 count++;
  13.                                 System.out.print("請輸入一個"+start+"到"+end+"的數字:");
  14.                                 ans = scn.nextInt();

  15.                                 if(ans > target)  
  16.                                 {
  17.                                         end = ans-1;
  18.                                 }else if(ans < target)
  19.                                 {
  20.                                         start = ans+1;
  21.                                 }else
  22.                                 {
  23.                                         System.out.println("恭喜您答對了!!!");
  24.                                         System.out.println("總共猜了: "+count+"次!!");
  25.                                         break;
  26.                                 }
  27.                         }catch(Exception e)
  28.                         {
  29.                                 System.out.print("輸入錯誤");

  30.                         }
  31.                 }     
  32.         }

  33. }
複製代碼

TOP

  1. import java.util.Scanner;
  2. public class bbb{
  3.         public static void main(String args[]) {
  4.                
  5.                 int a=(int)(Math.random()*99+1);
  6.                 int x=1,y=99,t=0;
  7.                 while(true)
  8.                 {
  9.                         try{
  10.                                 Scanner c=new Scanner(System.in);
  11.                                 System.out.print("請猜一個"+x+"~"+y+"之間的整數: ");
  12.                                 t++;
  13.                                 int b=c.nextInt();
  14.                                 if(b<x||b>y)
  15.                                         System.out.println("超出範圍了");
  16.                                 else
  17.                                 {
  18.                                         if(b<a)
  19.                                                 x=b;
  20.                                         if(b>a)
  21.                                                 y=b;
  22.                                         if(b==a)
  23.                                                 break;
  24.                                 }
  25.                         }catch(Exception e){
  26.                                 System.out.println("請輸入整數");
  27.                         }
  28.                 }
  29.                 if(t==100)
  30.                         System.out.println("猜"+t+"次了   You Lose   正確答案="+a);
  31.                 else
  32.                         System.out.println("猜中了 正確答案="+a+"\n共猜了"+t+"次");
  33.         }

  34. }
複製代碼

TOP

  1. import java.util.Scanner;
  2. public class Haha
  3. {
  4.         public static void main(String[] args)
  5. {
  6.     int start=1,end=99,count=0;
  7.     int ans=(int)(Math.random()*99+1);
  8.     int guess;
  9.     while(true)
  10.     {
  11.         try
  12.     {
  13.         Scanner scn = new Scanner(System.in);       
  14.             count++;
  15.             System.out.println("猜一個"+start+"到"+end+"之間的數字:");
  16.             guess=c.nextInt();
  17.             if(guess > ans)
  18.             {
  19.                     end = guess-1;
  20.             }else if(guess < ans)
  21.             {
  22.                     start = guess+1;
  23.             }else
  24.             {
  25.                     System.out.println("恭喜你猜對了!!!");
  26.                     System.out.println("總共猜了: "+count+"次~~~");
  27.                     break;
  28.             }
  29.     }
  30.         catch(Exception e)
  31.         {
  32.                 System.out.println("輸入錯誤!!!請輸入整數!");
  33.         }
  34.         }
  35. }
  36. }
複製代碼

TOP

  1. import java.util.Scanner;
  2. public class Haha
  3. {
  4.         public static void main(String[] args)
  5. {
  6.     int start=1,end=99,count=0;
  7.     int ans=(int)(Math.random()*99+1);
  8.     int guess;
  9.     while(true)
  10.     {
  11.         try
  12.     {
  13.         Scanner scn = new Scanner(System.in);       
  14.             count++;
  15.             System.out.println("猜一個"+start+"到"+end+"之間的數字:");
  16.             guess=scn.nextInt();
  17.             if(guess > ans)
  18.             {
  19.                     System.out.println("猜太大了!!");
  20.                     end = guess;
  21.             }else if(guess < ans)
  22.             {
  23.                     System.out.println("猜太小了!!");
  24.                     start = guess;
  25.             }else
  26.             {
  27.                     System.out.println("恭喜你猜對了!!!");
  28.                     System.out.println("總共猜了: "+count+"次~~~");
  29.                     break;
  30.             }
  31.     }
  32.         catch(Exception e)
  33.         {
  34.                 System.out.println("輸入錯誤!!!請輸入整數!");
  35.         }
  36.         }
  37. }
  38. }
複製代碼

TOP

  1. import java.util.Scanner;
  2. public class work1
  3. {
  4.     public static void main(String args[])
  5.     {
  6.          
  7.          int a=1,b=99,n=0;
  8.          int ans=(int)(Math.random()*99+1);  //1~99
  9.          int guess;
  10.          while(true)
  11.          {
  12.              try
  13.              {
  14.                  Scanner s=new Scanner(System.in);
  15.                  n++;
  16.                  System.out.print("猜一個"+a+"~"+b+"之間的數字: ");
  17.                  guess=s.nextInt();
  18.                  if(guess>ans)
  19.                  {
  20.                      System.out.println("猜太大了!");
  21.                      b=guess;
  22.                  }else if(guess<ans)
  23.                  {
  24.                      System.out.println("猜太小了!");
  25.                      a=guess;
  26.                  }else
  27.                  {
  28.                      System.out.println("恭喜你猜對了!");
  29.                      System.out.println("總共猜了"+n+"次!");
  30.                      break;
  31.                  }
  32.              }catch(Exception e)
  33.              {
  34.                  System.out.println("輸入錯誤!請輸入整數!");
  35.              }
  36.          }
  37.     }
  38. }
複製代碼

TOP

返回列表