返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯 + W, g% A  S  Y/ ?
  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  "+":
. l, S$ y' o; K6 y4 b4 [因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
& ?9 b. v/ W+ ^
7 N1 M0 q0 @& Jpublic class TQC206( ?4 w( K+ d& ]$ d5 u/ U
{
" x& b& q8 r. Y; {* g% M: r: ^9 l" D& j. B   public static void main(String args[])
! T( \% J& ^9 D7 ?' P' @3 V! V    {* b6 z4 k5 r* A4 J
      float a,b;
3 M4 b2 i/ x, s" S      String calc;
- ]3 B# \% ^; v, K$ m9 d      try{
* _% r3 B. H3 {; E( W4 J& `         if(args.length==3){
5 e! v% }, c; v6 n            a = Float.parseFloat(args[0]);$ y3 G1 X( |; W7 n$ \! Y) q
            b = Float.parseFloat(args[2]);, h6 @9 S) e- G
            calc = args[1];
9 I8 W# W8 F+ \, X$ `            if(calc.equals("+")){
) K/ I' C5 q9 f# V2 M9 J) t               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
% H( A; \3 Q% u- N) E            }else if(calc.equals("-")){! x: M- q. c2 R9 x, U6 ~
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
+ P+ {, G! C5 J! m! l            }else if(calc.equals("x")){# }2 _0 a- }1 L2 ]/ ?/ V: ^
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));9 X9 T1 u4 U0 s8 a
            }else if(calc.equals("/"))+ F- r0 n) P: w7 a& F$ a
            {* z. c( r  W7 G7 l7 Q% \
               if(b==0)
/ |. W" k( F% v" w/ _               {
2 o1 ?6 c+ w- o% V! B4 q5 ], w                 System.out.println("除數不可為 0");) V; z, Z, t/ v5 S% P0 ^. ~0 [
               }else
- x7 D5 H$ J: C& P2 {! C               {: w& J4 c1 z/ q) x
                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));7 f4 e1 q+ H& T5 m
               }
! t2 {$ q$ h  u; M) L8 p$ ?- V# ]            }
6 ]0 k0 h  ?, P) e! M, l, U* F            else
/ h4 p9 w' y$ L) J+ ^, S+ e            {2 g. N6 G4 j" X: C! p
               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");5 O9 ]; D3 d* h5 E
               System.exit(0);& ?$ d% x$ \! ^9 G
            }
1 T1 R9 r0 j; r  n) N         }else{8 R7 l: k; `* u! ^
            System.out.println("請使用三個引數,如下格式\n 1 + 2");
7 H) y9 w- f) G* d3 |+ f: h' e" Y         }5 N) T' L! S7 [- |
      }
. L$ i" Z! w3 X) I( x! L      catch(ArrayIndexOutOfBoundsException e)
) f/ P1 L; K5 Z! e' w# |7 d      {
; t- Z8 v# h& K% [: d- k: F               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
/ r5 }, F, }4 }, J# ~3 W      }! }& Q# u7 v# I, C5 C- U/ S  C% B7 ~
      catch(NumberFormatException e), d; @+ K% J2 p  x- L, a/ r
      {' d" j6 E% ?  W  g, e. r! }2 C
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());. U% l! k* ?" Q& M  y, t5 `
      }
2 `; \% t; ?9 Z) B$ _$ ^      
4 W) B' o. p. o    }4 N0 m4 A$ U. Q7 Z7 b& ~
}

TOP

返回列表