返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
- Z& N: |( A7 H) h$ b1 L; h
  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  "+":3 B& v* H/ c' t  t- ]
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:0 m2 |& q+ ~9 X4 i# Z

; k- r# ?8 b8 n& l( l( F8 r5 |( fpublic class TQC206' k& {. n5 F2 [( B
{
% s* p0 @' _  |3 k   public static void main(String args[])
# H% Z2 |6 Z4 ]/ Q) `    {
! {' ?. g( `3 L" D      float a,b;
; j- i' v9 ^5 m$ S      String calc;# S5 k' [! c' S) j- G
      try{
6 c' O" g2 a( g1 v- i( M6 U) b         if(args.length==3){. W; E5 Q5 t( F2 Y: o0 k) b
            a = Float.parseFloat(args[0]);8 d& q* y- U3 f# E
            b = Float.parseFloat(args[2]);
: y3 X8 R2 k) m  `3 d            calc = args[1];: ^6 M' k" Q" F
            if(calc.equals("+")){
5 J( |. f. ^3 c# ^3 h# D               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
+ A: i# m" u; J" J8 i+ G% S/ i6 X" X            }else if(calc.equals("-")){, J) S6 ]" }( F& q! q
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));5 k7 E( O3 Q0 }
            }else if(calc.equals("x")){
5 t. x& @! P) r) ]               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));, W8 U- B( s5 a+ ~  O
            }else if(calc.equals("/"))2 m3 S/ O1 {, U; E1 {
            {8 z4 ~* d0 d7 S1 s* [
               if(b==0)$ y7 x4 Y& `0 F- S* D$ \
               {3 U/ _5 V0 `( z; x& j
                 System.out.println("除數不可為 0");! u' W0 t- B7 c; A& v
               }else
& \  d/ k6 i! w8 E* J5 p' X' k               {/ e* K% Q0 _& p5 q- z! L3 r
                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
, q- f: i& [, a5 m. i               }
7 N! u. \( g+ ?& ]" N- R            }! o" m' s; @- v/ H; q
            else, Z/ M- L5 m7 f' F1 e) f& r
            {6 u" g& `7 B  L' c
               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");7 W/ c- X2 N& k
               System.exit(0);
: T" G# g8 B9 W) E; `- f( R% y0 P            }
4 g" N/ o# F# C& n& _         }else{/ G/ @) {: s/ e+ {" `' r7 d! J
            System.out.println("請使用三個引數,如下格式\n 1 + 2");+ F- e6 j7 \2 P. n
         }
# p* B! i0 p/ p! i! [0 F      }
5 F8 E0 y6 J; m, d2 o      catch(ArrayIndexOutOfBoundsException e)) b7 c, z+ s" A. X2 D* @
      {& C! q8 J- L% c1 c
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
6 Y7 P2 Z/ _( p# @2 E      }
# V) V! B( U, N0 c. P: q! \" |9 i      catch(NumberFormatException e). i' _& o& l' Q6 Y4 L
      {  c: ?/ l6 K: c  O7 E+ N
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
, v7 H: C" b  g1 U& X      }
1 N) c; Z' v' L6 c! t      
1 O# @: i) ^8 {$ ^2 T    }
" J' K* r$ u! C7 c% r1 \& I9 _}

TOP

返回列表