返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
5 [* ]" ]8 E) @* T: Q- 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  "+":5 ?  X1 L. l' b# p
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
! p& X/ z  V7 I8 g. J, f5 r( a% y4 b
public class TQC206
0 v; C! i$ z3 f{
! ?& J" j6 v) D) v   public static void main(String args[])5 x3 n9 P7 y: ]3 A! U( a! `
    {0 [8 \3 ^6 h7 L$ {
      float a,b;3 v0 [8 I0 ^+ K& m% z
      String calc;
9 m; J  ?, K" f. t, H+ f9 i) ]7 m1 {      try{: \/ d1 j; @* }/ u4 g$ U6 O! G
         if(args.length==3){8 U' ]' v* Z: Y& I$ |
            a = Float.parseFloat(args[0]);! B' |+ n6 }) A7 A# Q+ U! J
            b = Float.parseFloat(args[2]);: o/ l& `' [* o5 o
            calc = args[1];
! j) n. \7 S, ^& M7 P            if(calc.equals("+")){' B, b( X3 k! o
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));) b9 h3 V) N; m6 i+ O  C2 b
            }else if(calc.equals("-")){8 n; h( r3 o8 m$ B) D5 l
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));* F4 d1 B- G8 k* a& a
            }else if(calc.equals("x")){' R% K) Q8 \7 L( B6 x3 v
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
& {+ ^% _1 H+ N, E% R1 H7 a            }else if(calc.equals("/"))
- w, S" {; F4 N  l0 l# T- L            {% x9 u1 c  d& P. e( C5 g
               if(b==0)! X0 E# n  i' {2 [
               {
' P0 n. ~+ H" `                 System.out.println("除數不可為 0");! }; c. {* D6 Q5 s) X- @/ g" q7 v+ n
               }else
& x0 j$ D$ R0 B               {7 [2 Z: G) D1 T) K: S
                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));( U' D( h' O' O5 |& f
               }
/ N- O$ R7 ?* ^7 M            }
) R0 R6 N! W7 ~* M' F+ b            else
; ~: r* k- i5 d            {
% y( J4 r2 C" p1 a% D& C+ z               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
+ i" c8 c% T- T2 T8 B: T( h* q               System.exit(0);
' {7 O0 _6 a5 F9 R/ M            }
* ~' ^6 f. X! V7 e% T; |7 P4 w         }else{
" S, P0 t- U  z8 G" b: E" i; z            System.out.println("請使用三個引數,如下格式\n 1 + 2");. L0 J5 L# S. e% S$ I$ C
         }8 G- K8 b1 e1 X
      }
8 K4 F4 c0 R$ D* V* u# u  \3 j      catch(ArrayIndexOutOfBoundsException e)
* S3 \6 I+ C( r& d& H      {
" a7 H, {6 g8 L, [4 ]8 T               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());( u4 P6 @& A0 d! j. q- S) K4 `
      }
# i5 ]+ i$ Z8 O+ W, C. i      catch(NumberFormatException e)
  Q! x: b! I+ e8 R5 p+ K9 n) R4 x      {
, e! j9 z# i& _2 w         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());3 ~4 D3 o' i0 w; A1 l4 U/ D
      }% Q1 `( M0 J1 D6 W1 s0 y$ {  m9 U7 \
      
( H, w1 j, F0 M1 n5 P, b% {    }' w+ u4 C% h3 b  }
}

TOP

返回列表