返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯 3 ]4 f( e6 g5 @, z$ T
  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  "+":
' s5 m% Q( N7 z! z. J因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:1 I* l% g" A+ _; F

: H8 Y9 J9 z- a2 |1 Bpublic class TQC206
/ b7 c; V* ~% S$ I9 @) G{! M) L& a" N; n9 ?) F' p8 P4 B0 I
   public static void main(String args[])' x9 [( s9 i2 g' L7 `
    {
! p$ T. m6 l9 e# P; _      float a,b;, |, B: x6 t) |- F7 y% }
      String calc;' D, A; ~" ^  s5 ^! s+ H1 G
      try{
. V7 h! X0 r# c2 n         if(args.length==3){2 K/ ?9 c3 v2 I
            a = Float.parseFloat(args[0]);$ F5 b  @; g8 I% k# b
            b = Float.parseFloat(args[2]);: B1 T9 A4 Y, s8 U4 m) y
            calc = args[1];- ]6 a) v4 H% ~% X
            if(calc.equals("+")){
) W0 x* v7 g2 Y+ J9 f               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));5 w$ S' @. U9 p" E
            }else if(calc.equals("-")){
6 W# q- P- i; \: J' m! Y3 @2 |               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
; J/ E9 @; T+ ~' p0 Y4 y            }else if(calc.equals("x")){7 U* `& n$ s4 \9 X% e7 n) ?1 l
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));5 M/ ~/ O3 {( e6 \8 U2 ]4 r! F
            }else if(calc.equals("/"))
6 _; W" i, y, `            {
1 x3 s$ u4 M0 I               if(b==0)
- C  W' T0 e4 ]4 b& e               {
. D' M! n; ~) H! ]% y                 System.out.println("除數不可為 0");
2 U* o/ z+ W/ m9 e* c6 S- M               }else
# F8 M. d5 H% \' m2 F% }8 J               {
9 c# h; \- @  }$ R/ p/ K                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));# G  F# w6 h( X* _. V& t
               }- J5 p; K/ y! `4 T
            }, f8 Y, ?+ y% q+ m( Y% T0 Q5 P
            else
6 ?; J3 M& W" H4 B            {
9 X9 o' p% F  p+ |7 [               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");" Z5 h/ E% p. s  Q, L! @  s
               System.exit(0);* Z0 L# {3 n) D8 \2 H: n- ]: A
            }3 P# F5 H! M6 e6 j
         }else{' l8 M+ L& c/ P0 E. ^
            System.out.println("請使用三個引數,如下格式\n 1 + 2");$ _+ L+ V' Z& u! P
         }
3 A! V; Z9 U3 q  M' {! v0 {      }# W6 @+ U+ @' c$ V  P
      catch(ArrayIndexOutOfBoundsException e)
( C0 g5 B4 S! x      {
  o* M" @( ?9 ^$ C               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
$ I& C2 L* C  s. ?* k      }
0 Q" r) H: g8 r5 q9 J, o6 T      catch(NumberFormatException e)
+ D: B: d) S, \, s% e3 h' g" q+ Z      {
5 m2 X( @  ]+ A6 x         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());0 S! Z& S) Y+ k$ C1 L) }
      }
. h6 z2 B9 G6 y+ v/ j      $ o: [2 [) u0 ^% c
    }
" ]8 P; ^. i7 t5 g! a0 W}

TOP

返回列表