返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯 7 s4 [* A) ~6 Z0 ~
  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  "+":
1 v  y! K( Q# E0 f2 K% u& q/ [$ ^因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:. x7 o1 q: z/ I4 Q

! F0 }" H6 b9 g- W& D$ ppublic class TQC206
% u/ ]) c  F& z8 J$ f% b/ A{
1 k2 T9 E; c0 `% P; K; \   public static void main(String args[])
( ^3 B) k' p- c- ^& |% h    {2 J+ w5 f, i3 e- e( x6 |
      float a,b;7 s! ~! Y; Z! P8 z6 q+ K
      String calc;9 b& ]. E8 n) Y& i- l* t" c
      try{
9 ^( c8 ?+ {+ I) i( P' a2 q         if(args.length==3){  e; n1 k& l2 g( c+ H) F* Q; |. P
            a = Float.parseFloat(args[0]);5 p7 d/ n# i6 D% t# i' j1 k
            b = Float.parseFloat(args[2]);2 a+ Q" s& X5 J- N
            calc = args[1];
( ]' a3 H0 K% f" B" {; b            if(calc.equals("+")){5 d* V  d" A. B: K7 a9 C* G
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
) V4 ^- M$ }+ h0 p& O& n6 F            }else if(calc.equals("-")){) I& f4 U0 x8 E9 T6 \& h4 a
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));* Z/ H+ a$ G( K/ ^. v0 K
            }else if(calc.equals("x")){$ ?1 X( j( L- h/ A" P8 q! S9 a
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
0 I, D- S/ P2 X. k" V: a            }else if(calc.equals("/"))$ P% X, z7 q/ D) F6 X9 h
            {
5 `! M/ k* y2 }1 Z3 e               if(b==0)+ Y/ B: b/ ~( h8 ]! M4 l
               {* f% E9 u9 E- T& f' C: u8 [# w9 |2 Q
                 System.out.println("除數不可為 0");" }0 Y, }) U7 G9 N5 E
               }else6 \9 P# G4 n6 H8 l
               {0 I! Y  N' U: q" B# J
                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));  m3 [* w7 s( v- e: Y
               }+ q8 w5 C3 s+ [
            }) d5 m' G% w* w0 l" L6 N
            else) U/ N- q' f8 t" q+ m6 e  ?
            {
7 f3 j* m+ u" i' w5 j               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
1 |- u9 ^3 B0 E0 A; q7 }0 W8 M               System.exit(0);' L) i" V  t; @8 V
            }
/ [/ r1 Z0 J0 u6 |3 r. |  k         }else{: \, B# R( w6 d
            System.out.println("請使用三個引數,如下格式\n 1 + 2");5 H1 P6 X2 y$ J7 m
         }! L0 J/ w- b3 F8 i
      }
0 v+ m$ q& V8 B  m. |5 ^6 j      catch(ArrayIndexOutOfBoundsException e); M0 v& l0 p7 g. X. n. S  n- l
      {4 y/ b7 w3 @5 Z
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());4 M/ V) F, Q7 Z" ?
      }8 l; E% `7 K7 M" `- q+ D# G. S7 l
      catch(NumberFormatException e)
6 {2 U& y$ z/ q3 ~, n* @, P* X      {
+ G0 j4 b$ q2 m( M5 z/ \* p  m         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());; [& U# u5 ^) w, f5 Y( V- v, Y
      }
9 N8 c9 t# e4 Z, U0 U7 A$ t      # z0 J3 d$ L/ J  h" d) Q
    }
3 i4 X1 ~6 S- U, U}

TOP

返回列表