返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯 0 t/ H+ R' [( D
  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  "+":( ~% P( K$ S7 S- y% X0 u
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
0 C3 n$ Z2 g: a9 A2 ]; e
( H; A2 s0 F, c. n& {/ }" ~8 E$ `public class TQC206) }  a* |; y- v# o+ i1 Z
{
8 }' ^, o7 o1 c4 m) X0 s   public static void main(String args[])1 @1 d/ y: \1 V6 G# ], ~, @2 _9 i  F
    {
. a2 r- D% y$ F9 T( m3 s      float a,b;
' i7 e% |- h, F0 a# J) @* c8 I      String calc;
4 d" F2 m0 |4 ]      try{
) f% {+ B$ n  ~  I' `- J         if(args.length==3){9 ^9 G7 E! R& C( P9 R
            a = Float.parseFloat(args[0]);6 |" ]3 N& Q$ O; ^7 z: ~
            b = Float.parseFloat(args[2]);/ J" `% Y7 i) u8 }. ~9 `  ~
            calc = args[1];5 A" S% L( C& V- i
            if(calc.equals("+")){
3 Y$ s6 u+ [; h0 _8 V  {$ K               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));0 e* |2 {; n- a
            }else if(calc.equals("-")){& T( s" W! s9 S
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
& h+ X2 F; _8 ^6 Z            }else if(calc.equals("x")){7 e6 O& Z! P) @* j, q! C
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));! r5 f" x! N; K
            }else if(calc.equals("/"))
; ~, O( J1 a' T; H            {( `- C, r! ^# b. K- N5 w/ Y
               if(b==0)) W, y) I  R' P5 z& R. Q
               {
1 j: I4 h1 I, U. X" O; J& e                 System.out.println("除數不可為 0");
6 e7 K! K2 i4 g! ~/ g) N               }else
+ e" W3 O% r7 S$ b+ U, U9 g               {
+ w% R8 E; Q" W( O; Z0 j- U  \  k                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
0 m1 T+ K5 X( |               }
7 w: Z) D  X4 ?$ t& F            }7 B% f# Q  a- i1 y/ S" b
            else# X. ^, V, }7 [9 O, B% f
            {" v3 Y$ y9 G* q  \6 J, |" I1 S
               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
; Q8 a5 a+ S6 \# U/ Y               System.exit(0);& s3 K& \5 y( J
            }% h( c- h  f6 ^" A% D
         }else{
' ]3 ], P' m  |2 V9 x. ]            System.out.println("請使用三個引數,如下格式\n 1 + 2");9 n! T) _9 M: W! g8 ?6 N5 |5 s
         }/ I" x5 V  y3 C" \* L8 @
      }
4 O4 p2 n1 l. S/ N+ w2 ~      catch(ArrayIndexOutOfBoundsException e)
+ c1 N7 D+ u/ \* g8 X, b      {
: y0 e0 V5 d8 s- e$ a               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
# W: E: F8 @7 @+ G3 Y3 a! N. @      }
0 u7 A# Y6 y5 H5 [0 T      catch(NumberFormatException e)
8 @- y0 ^) F) f" t0 t      {+ |5 R, r9 ]3 k) h$ e: E
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());% _% a, k& C4 L0 _. W
      }1 k2 t8 {1 [6 p- _) o
      
8 r  I5 @9 q4 D3 q! D    }
1 k9 T5 O, O" B7 v. p; a$ J}

TOP

返回列表