返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
! {, J+ Q, G7 W. T; W2 D  T5 l$ 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  "+":) D* Q  B0 F8 ]# Z# \2 O
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:% e- d0 E' x  s% `2 k

2 @8 B1 f7 W$ v$ e6 ^8 r+ zpublic class TQC2063 l  ]+ D4 P7 k! o+ h& s9 g
{! P: A% h3 O2 s' m! @6 _. L1 t' i8 V5 |
   public static void main(String args[])
7 G+ q! L' c: }+ E, p4 m7 u; q! p    {1 e1 [- T3 W; }) ~9 E* K
      float a,b;6 ~8 t+ h( Z; x5 p
      String calc;% S- d2 |. x5 M1 o
      try{/ H2 u8 I' s( }" ^0 C: o$ W
         if(args.length==3){
' [3 z8 `$ l, B* X            a = Float.parseFloat(args[0]);9 X) }/ A7 K5 h0 t3 Y
            b = Float.parseFloat(args[2]);' J- t) m) d8 T& c( f" N$ Y# T- `! k
            calc = args[1];
" r, w, u6 m, U            if(calc.equals("+")){3 a6 L5 }9 M- O, a1 s  w
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
* H! L1 k3 g* I) `            }else if(calc.equals("-")){! P6 H2 c2 |2 z. h& W0 @/ x
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
& B/ O/ |% O  x& i, L            }else if(calc.equals("x")){5 ?* s2 c1 c& L+ d( Y
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));; v" H4 o; t) T0 ?
            }else if(calc.equals("/"))$ n7 \& `7 h/ O8 |1 ~2 x
            {( X' R( Q( M* X( O
               if(b==0)
* m: t3 `. T* ?( [- \+ W4 Y               {- Z' F  Y1 k- ~# W2 D% J
                 System.out.println("除數不可為 0");
6 {; C% |7 U) q; t5 T6 Z               }else) o" M4 t' d4 h+ v* ~
               {" B5 b. l2 ~, g6 n; M
                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
& \  Y! M) ^, p7 y               }5 b  Y/ {$ @5 g; p5 ^2 `* l
            }
! l" q- C* y/ p6 Y            else8 t/ W1 F& I5 v5 E. {' f5 d
            {  E& g) ^' J3 r; \) Q
               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
# T3 H' e! O- k' B) I( t               System.exit(0);
2 s( |" N8 ?+ i' N' A( F            }* G2 v$ T8 O, v$ ]9 a4 s. i
         }else{; Z, J8 j) ?" ]9 h
            System.out.println("請使用三個引數,如下格式\n 1 + 2");
6 ]& `& r( P7 X8 K. v) N! K2 _         }: ?, w2 f: A+ ]
      }
0 ^( {8 H4 O' v, \8 c      catch(ArrayIndexOutOfBoundsException e)
0 `' i) E9 F9 |$ w( L* y      {; d0 X3 R6 N/ L7 s' S! H
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
# G$ s+ E( S; J7 }$ |8 k      }
, y3 |; Q  t0 g0 A/ h, _1 w8 N+ a      catch(NumberFormatException e)
" A# z" O" Y* F# r7 F. M, L      {1 B. {5 \0 A; r- X  f2 A
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());6 k& E% T( f% x' [
      }
3 J6 P# \* L3 I" f, d      
* c: O2 l$ }4 i0 N" ?% c    }# J0 O% H# T5 Y0 L8 Q! [
}

TOP

返回列表