返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
# F& |. {7 b4 q1 w; S9 q& y6 X% ?/ J
  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  "+":
/ C& s0 j1 m; q. j因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:* o: j% P6 f. f0 j9 ~

0 \$ Q; B% \; }. Q; F" lpublic class TQC206
. H+ i. ^+ A8 R{9 R* k8 R6 P& a# i$ u
   public static void main(String args[])
& v5 N4 _; o0 d4 a; q) V$ E7 _    {
% c: s* f% E7 Y$ U, y; x3 G      float a,b;' l8 m% K+ o! m, d) b" h( H4 v
      String calc;% f+ B1 E7 [3 t4 B; h
      try{
2 P' [2 G: c/ C$ N4 B3 D7 u& \         if(args.length==3){. Z9 q$ F4 R" p5 J- M
            a = Float.parseFloat(args[0]);# a8 k8 b& ^' A# r* K9 g
            b = Float.parseFloat(args[2]);
  o0 H& W% Z% I$ M# ?# c) l( }            calc = args[1];
7 g& B, Y. H5 L            if(calc.equals("+")){  {) x, c3 p0 z$ ~: ]! h
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
5 Y3 e4 i$ v# q7 p6 c6 o/ u            }else if(calc.equals("-")){, X) R$ ]! X9 t. [+ C) i$ C
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));& }  j) H! J. h/ ]1 d5 d" c
            }else if(calc.equals("x")){% o& t; d8 R4 m" b! H, v& U
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
8 f8 j: t# e0 E5 g7 z/ D0 Z0 x- V            }else if(calc.equals("/"))- E& g; a! \& \* b9 O" C6 N, }% k
            {
- G: |$ v4 x" x& y+ x0 a+ b               if(b==0)
1 }2 V1 t. Z. C               {  v/ q9 D# i( r4 J
                 System.out.println("除數不可為 0");' p+ \8 J1 B  v. j' U9 t2 l
               }else& y- O: l5 h1 o1 R' C
               {/ l# c9 K5 e$ |. l  C5 y
                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));: M* j6 s5 Q2 V" C# L5 ?
               }
7 h; W! z; E# p7 W/ M$ R/ @            }" _1 b- u6 ]7 ^9 Y* z5 `4 W
            else; g; U9 x/ s! d% j- J0 f
            {! ^* x& y2 K, b8 t! [
               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
* U& I- s( O' V8 V2 |/ g- s               System.exit(0);$ a& e& \6 b& E+ t0 w
            }
+ d, C. k' @) P7 R6 B         }else{4 o. c( L& {& [" \4 k
            System.out.println("請使用三個引數,如下格式\n 1 + 2");4 p3 i' K! B: c2 v( i
         }
( N, n) s5 Q8 P% n/ s$ d      }. j2 M7 N* w  Z5 f! ?: ]4 X+ |
      catch(ArrayIndexOutOfBoundsException e)/ d6 r* n4 ?9 i
      {! w6 ?" Y0 I- ^; a5 }# M9 N
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());: u( \) D6 H. j" r+ x# K1 A
      }
) v$ O  K! k+ O' z7 _* L* }) B% `1 W: k      catch(NumberFormatException e)
$ s- ^, F9 P5 m7 Z+ o      {& V, t) t5 l. b# W0 n$ S2 L& L+ x
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());; [( @4 u: ^% a+ M5 R5 Z0 ?* {! i2 d
      }
8 _; s" T9 e8 I, D( F# Y      ) _  q0 ]) U' n& T
    }
4 u4 \0 W! b! A}

TOP

返回列表