返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
1 Z0 a& _2 @9 e0 Q  ^, B
  1. public class jva206 {
  2.         public static void main(String[] args) {
  3.                 try{
  4.                 if(args.length==3){
  5.                         float a=Float.parseFloat(args[0]);
  6.                         float b=Float.parseFloat(args[2]);
  7.                         switch(args[1]){
  8.                         case"+":
  9.                                 System.out.println(a+"+"+b+"="+(a+b));
  10.                                 break;
  11.                         case"-":
  12.                                 System.out.println(a+"-"+b+"="+(a-b));
  13.                                 break;
  14.                         case"x":
  15.                                 System.out.println(a+"*"+b+"="+(a*b));
  16.                                 break;
  17.                         case"/":
  18.                                 if(b==0){
  19.                                         System.out.println("除數不可為0");
  20.                                         System.exit(0);
  21.                                 }
  22.                                 System.out.println(a+"/"+b+"="+(a/b));
  23.                                 break;
  24.                         default:
  25.                                 System.out.println("引數格式不對,請使用如下格式\n Calc 1 + 2");
  26.                                 break;
  27.                         }
  28.                 }else{
  29.                         System.out.println("引數格式不對,請使用如下格式\n Calc 1 + 2");
  30.                         System.exit(0);
  31.                 }
  32.                 }catch(Exception e){
  33.                         System.out.println("引數格式不對,請使用如下格式\n Calc 1 + 2");
  34.                         System.exit(0);
  35.                 }
  36.         }
  37. }
複製代碼
陳彥綸

switch裡面要用字串的話,JDK必須要使用1.7以上,還有case後面不該緊接著判斷字串,應該要加一個空白,例如:case  "+":
6 M% {' d7 A3 h. h因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
. t  ^/ U7 z1 b$ e1 K& l7 F
0 E9 R5 U% A( W2 m- Spublic class TQC206
" P: @% }, T, v# b{$ a. Y; ^8 O& f3 A. t# F- C7 c
   public static void main(String args[])' h+ {5 O! Q' v/ r6 k# @% l4 k/ c: u$ m
    {
2 f# R# A8 L9 w* z9 P      float a,b;
) W0 V! F! x; m: H; Q# a" _" X      String calc;; o5 P2 t; ~& P+ D* N' ^
      try{' _" E( ]1 Q( ]6 O3 Q) g/ I# Q
         if(args.length==3){
8 d2 c3 n5 U2 z9 g6 c! Z            a = Float.parseFloat(args[0]);2 r& C' k9 W3 F! h
            b = Float.parseFloat(args[2]);8 A7 W/ X* V5 K# s' N! y
            calc = args[1];& W& h% V9 \. ^
            if(calc.equals("+")){# Z1 W8 v0 L4 r
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));5 d9 k. ]7 P* c4 l9 K6 V& [
            }else if(calc.equals("-")){! H4 e" T1 }+ B5 Z7 V
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
' ?4 p% j' e- k            }else if(calc.equals("x")){/ d8 ?' |+ `/ B! K
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
/ o, M) Y5 d/ n  R* h, k% |            }else if(calc.equals("/"))! s, v, I7 Z1 h
            {) a& \- F- O/ j+ R' A2 @9 j; b
               if(b==0)1 o5 k/ I) W+ J2 e
               {
1 g+ S7 M+ m' l: t                 System.out.println("除數不可為 0");
! |7 b+ I- C# w8 x& Y" m! p               }else
. I' Q8 e" h0 A0 S) i               {
; Z$ \2 ^- C& R& Z# e; {                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));" D, ^8 k3 h' y/ s- S) V
               }
/ o2 R+ A9 b/ j/ E% `7 A' K            }6 t/ w0 C6 P3 Q
            else3 n/ U+ ^; r2 u
            {
. I, x/ X5 G* D               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
5 e0 f* e: k: S* Z' G3 m( h               System.exit(0);
# K4 r' M" K5 B( _! \            }/ M, J$ m9 v6 [: K- z
         }else{4 c3 l) O: k" P% s' ?+ y( J! y
            System.out.println("請使用三個引數,如下格式\n 1 + 2");# g) ~# I1 \2 i) g
         }
/ Z8 c4 _  |6 `# U1 F& v# y" ~      }0 I% f3 J0 v' `2 H9 C
      catch(ArrayIndexOutOfBoundsException e)" w+ o; W/ o5 c
      {
- E8 Q7 o0 \. s2 E4 Q               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
& _7 k( H; Z  o      }% t8 J8 O. h; h
      catch(NumberFormatException e)
4 H' r0 C* W( c9 B      {
$ ?: V6 R5 N* U$ E         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
" O3 Y/ R+ X% ~3 u( L- r/ h+ J; H      }
( H9 u# ?. Y5 R      
8 a$ u% f4 N. Q% |% }( |% l. ?    }
% n* T) a' ^* k) D+ [$ ~% ]}

TOP

返回列表