返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯 & j4 d) K8 X! ?+ @7 T) X
  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  "+":
0 P$ w/ S" T9 g" x& x因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:# Q/ y4 E6 X* C& `% _! V. X6 E

2 [2 s' E, G# b8 Vpublic class TQC206
9 e) R. @% Q: f) l. x; q$ f7 D$ t{
' n* G9 P3 m# C( x   public static void main(String args[])
; G/ r4 ?( {' B; G* B4 ^* m; |    {
0 h) Q' c' M0 B% L0 a. Q      float a,b;
- M. h+ N1 z* W% G0 J! f" C0 n" _      String calc;8 B0 f) p$ l8 k4 A
      try{! v# W. x; i5 S
         if(args.length==3){: @0 ?) ~' v0 h  G3 s0 \
            a = Float.parseFloat(args[0]);' ~! Z9 U* G0 r
            b = Float.parseFloat(args[2]);- N+ L3 x% b6 A  R- U9 g: H
            calc = args[1];6 J: R9 w' H3 g
            if(calc.equals("+")){
, _3 w/ l0 s. n( v! q8 r               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));$ m8 @2 B# z( c
            }else if(calc.equals("-")){
$ A0 g( y  k( }+ e( i7 u5 t               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
( a9 O. |) e) H3 a: {8 j0 S            }else if(calc.equals("x")){
5 n, x: B/ b. F4 N6 e               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));: s4 t* w/ A( {; x' y
            }else if(calc.equals("/"))# O3 ]- q3 ]* H# \& D: e' N
            {( ]3 o) k/ Q( v, q
               if(b==0)
$ a- R; N. S% u; c9 r$ \               {
9 B6 F5 i8 ~! R3 L0 U: y/ d# N                 System.out.println("除數不可為 0");
4 |' p  H) N% s# |$ i0 g+ d               }else7 y2 p, E3 E6 [3 A1 {0 Q
               {
) b3 H0 F5 Q5 t0 G- u                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
' X: h& K( z2 q6 T3 @7 s. e1 f               }
+ Y, b; D8 ^$ B+ y6 F- n            }; o) F0 _! `8 U% w: Z
            else' O+ R# z1 {9 R$ q. k. [
            {
5 t9 T2 u; x! K, j4 }5 J               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
6 L1 O0 Q- G6 F! ]$ D               System.exit(0);! e6 q3 w7 w$ W- |+ {3 B
            }
8 A8 k0 K$ n. u' ^$ S         }else{
  B; y! N5 V$ v& j# h- [1 ~. n            System.out.println("請使用三個引數,如下格式\n 1 + 2");! n9 S6 z7 K( c7 c1 k
         }$ p8 N4 Z$ R& Q  Z6 D
      }
/ f6 x7 {5 ^% ~- |$ s' \( T+ Z      catch(ArrayIndexOutOfBoundsException e)
" |1 X4 v; z% V! u      {
! W! o1 }, d6 p" z5 j               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
2 u  ?& x' ^8 ~! H- X      }
1 F3 c4 u1 i8 S' d7 L& c      catch(NumberFormatException e)
  U( n- `( S# e      {
) j* V& K- @. b6 P) D         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
2 Z- e) v) r3 o$ K      }
4 r7 _, b0 b1 [  f) Y        j4 V# S! m0 P8 e# W# ~( G3 m
    }
1 {, t3 B  c# j. o0 w}

TOP

返回列表