返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
; \1 D* ~; m! Y  b7 K
  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  "+":; `" ~( i# H" R& M  C# C
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
  {- w; ~; Y4 |- o  A6 V; ~# _. _: t% G( j1 _: _
public class TQC206
" z  I/ ]' E& V# _1 C{: A1 A0 D1 b3 G7 \
   public static void main(String args[])
4 T' r- T4 x& O4 ], \4 y* }6 A    {+ h. ~0 j- v& m# W, x, B
      float a,b;+ C5 [9 G3 I* X8 q( |" w
      String calc;0 `! l* W; g; Y
      try{
) i8 Q8 Z/ v" \1 g) A2 D         if(args.length==3){
! M/ @5 ~; z3 a8 k' k( A5 s            a = Float.parseFloat(args[0]);+ L- }  T$ y' s& s
            b = Float.parseFloat(args[2]);( i  @5 D6 j8 t1 ^
            calc = args[1];; H6 ?, |/ `/ h( r
            if(calc.equals("+")){
7 I) @5 n- W* }, e1 ]               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
) k( v8 B; E0 C0 L, t8 A. b            }else if(calc.equals("-")){
' A$ r6 O# `* F" @/ j. \               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
/ b6 q/ D7 V- Y3 c            }else if(calc.equals("x")){
' g; X0 `2 j3 s; P               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));% L" m3 v0 S5 J, v; L! q
            }else if(calc.equals("/"))* s% r' C" ^. i, E5 |  B
            {2 E' i& {/ r% C7 q/ W
               if(b==0)" \" p% i& o6 a0 H8 }, j8 P
               {
6 T! C+ |7 m, N4 H  }  c                 System.out.println("除數不可為 0");
& t( P1 v, ]% n, k8 ^               }else! D* X7 n, g' I  k- V( O  [* L: [8 V
               {5 Z5 ?2 }4 P  j8 ?0 y* C
                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));# p6 v! X, U) d8 K8 R5 ?  f% E; W
               }
% X: q8 p* V4 U4 e            }+ t- _7 g+ t2 R3 g. w+ ~2 H) V) n
            else: d9 y  [% q7 o1 M& e8 u
            {
( H$ w- t+ M6 c2 ?# g               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
1 R. v2 M  K* c4 m- |+ k- l               System.exit(0);
. R3 @; D# V5 y. T  A# r            }
7 R: Y" ^. h8 J3 o2 i, N         }else{
& e; t! m, [! C6 {" M            System.out.println("請使用三個引數,如下格式\n 1 + 2");
4 s7 q3 f# H5 H; D" l9 u         }( Z% M8 t. U/ s9 I1 [& F2 S0 o
      }  p0 z0 l9 ~2 ?/ |
      catch(ArrayIndexOutOfBoundsException e)
7 p( R# K8 C9 f/ T8 b7 ~+ M, q      {, X) l( Y, o: U& C, V
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());- B* {( R% a" y, c- i& g
      }: q6 l9 {+ k) ?! B, e+ i% S
      catch(NumberFormatException e)
- b2 ?. B6 Q' L8 `: h' V      {
. [7 O/ ~4 [, e4 T         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());) E; f, K* G( m) R
      }% r. I" ^( y$ ~2 b6 V
      
" P3 F' K- W  B8 B9 X  G! b' P    }! {/ U5 C9 c; ^: F. N
}

TOP

返回列表