返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
6 }9 |+ G* P% m; W9 |
  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" ^4 ], d" y( H0 }/ n- `
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:% o5 e% w1 x8 F" w" C9 g* r4 @

( R6 V( u# k) z8 U, y% {' w+ [public class TQC206
9 b& W7 t! A5 I( \: X7 {) d{
6 b- ~* w6 R& j( a: a   public static void main(String args[]): O8 k& d2 Z% l* _5 U9 ?
    {
, `# _  |1 q- V. {2 ^      float a,b;3 p7 s$ Q* i. M5 C' m- ?
      String calc;
) D& c9 F1 i6 }- S( A$ a! i' s      try{
# q# N& a1 b3 Y         if(args.length==3){; C9 W. m% G$ {- S/ K+ @  N5 W
            a = Float.parseFloat(args[0]);* J1 y5 z1 \7 m( L( {+ N7 W- X1 y
            b = Float.parseFloat(args[2]);
3 f& z5 ?. y( S$ w+ G/ A8 y            calc = args[1];6 ?# W% \6 b% g% O
            if(calc.equals("+")){9 ~) k+ m1 ]& N# M) ^
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));5 ?# o7 s- A. j
            }else if(calc.equals("-")){8 p+ I) t2 T: u5 V2 X/ R
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));$ P' j# u4 t& R$ a
            }else if(calc.equals("x")){
/ P' E* W3 k- ?$ }               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));0 i  p$ F, D9 u  Z0 N
            }else if(calc.equals("/"))
- \- a$ L# c0 N& P8 p            {
5 _! W8 f! Q( [" e% P7 i               if(b==0)8 W/ ?/ K) U8 D$ H+ h1 k* @
               {- Y9 k( E% \( ~' t$ {: D8 T
                 System.out.println("除數不可為 0");0 K& G( K. x8 r0 f+ \6 Y! V% Z2 l& i
               }else; M, ^+ T  I! ^* z
               {0 T  [/ o. w( s% J8 I* e
                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
! I2 K  [8 L5 {& K               }1 o1 h5 L8 W7 ]# U% X
            }8 i! G: T: M! A) o/ F* D6 e
            else
/ q0 y, O& i: e, I/ b            {" @: F! ~3 n% ^5 N% M
               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
; a2 \4 {5 w6 V- ]4 G* y8 t               System.exit(0);
0 y+ m7 w0 K  p- f0 S7 B/ F% ~            }
& Y4 _0 `) w6 C9 d' [  n% L         }else{' A) r9 g+ P  I
            System.out.println("請使用三個引數,如下格式\n 1 + 2");; C4 s6 _3 {9 G: F
         }
+ u. J/ Y  J. V! p+ K, O  H      }" ^  h4 A" j# X8 \
      catch(ArrayIndexOutOfBoundsException e)
5 F* a1 q0 A9 e! ?- U3 }* {: j( z' V      {
7 e& K- D# B+ I( T4 V" b               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
$ m0 a" a0 y. U) m8 i9 G      }0 \3 U5 ^+ \9 k+ g: `
      catch(NumberFormatException e): c9 S% W7 Z+ @: @# |
      {- ]$ v4 U, q1 ^+ W- X
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());) n7 S- u/ P; f: `
      }! ~6 i! O8 _$ E0 s7 p
      - ]& Y, G; t1 e
    }! w9 [+ r0 w) L+ O" b6 [( q0 V& ]
}

TOP

返回列表