返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯 ) q" B( D8 o# u, v& m
  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  "+":; n  }: A" d% j" L& f) c3 o% {; A$ Q
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:  o5 ?# ]7 W1 V$ ?
: l2 p/ V/ Z1 O- t& n
public class TQC206
, W. |" f9 a' w; d5 u{
$ o9 b$ h4 Z7 o3 f& G. I   public static void main(String args[])
2 x# G- ]' C1 S# q2 ?    {0 A% T. m9 w) B1 z
      float a,b;
4 A# ?( v! R/ t1 t* U4 E' ?4 v      String calc;
- X; i7 _+ }7 B$ Z4 |; l      try{$ P# F" f8 N- [8 \$ V7 k7 B" e; m
         if(args.length==3){7 A9 P! y) L: e# {( s4 H
            a = Float.parseFloat(args[0]);* d/ B/ D7 ~$ _  r
            b = Float.parseFloat(args[2]);
' p* _$ S* c2 t/ `" C7 k            calc = args[1];5 P. R& L8 k' C9 b7 Y, F2 {3 z
            if(calc.equals("+")){. d/ V  }( I9 t/ C$ d  l+ o
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
" y" x1 a8 B  x7 p; }            }else if(calc.equals("-")){
0 p, n: A8 p: [/ X/ T               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));9 A/ z! ]- R& g. ~
            }else if(calc.equals("x")){9 r! a1 W" ~5 G
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
3 G" T% i7 Q- y& L            }else if(calc.equals("/"))
" F7 Z6 j, n7 G! |' a5 q/ y            {0 y" C1 {! X# V' w$ P
               if(b==0)$ @7 X2 A  q+ \& R: C4 j5 {8 b$ U* b
               {
0 ~" I( i# T$ i' R/ |# h# ?; `                 System.out.println("除數不可為 0");/ r$ g: [6 p  U# L9 D
               }else
% T5 }" \% A. R1 G& l. d               {
! c, ]8 p! T3 B; ^                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));" ^8 Z! V& W6 ^# [& e& ^
               }2 s+ ^6 A, T8 d/ P8 A3 }
            }+ I7 \( I  V) r
            else
! L: R  @; l3 m) B3 V  F            {
* i3 u) ~  Z: Q! s               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
7 Q# P. e3 {8 x8 E4 F               System.exit(0);
2 j0 Q) d7 A3 o* U            }4 s" a# ?' V) Q: n  Y: O5 f
         }else{* M+ n% [7 ]2 _3 L# h
            System.out.println("請使用三個引數,如下格式\n 1 + 2");
* l# U% K; O  P         }
( h5 p+ {, T" R# }0 ]4 W" S      }% ?+ G2 H, S0 _
      catch(ArrayIndexOutOfBoundsException e)- @+ @4 {8 Z8 r4 V- T/ P
      {
" v" W8 r" z, F8 z               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());5 H4 }2 f: X& A1 B, W* o
      }
  M* {4 V( F3 F. w6 R9 A* n0 X7 ]2 r      catch(NumberFormatException e)
7 ?* q6 x% u- F( f) W1 N2 F      {
2 D/ _* U) U" v         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
9 @# ?! g# J% ~7 A; `/ U) ]( e      }
  S% y* V# Y7 e3 g4 o6 Y      
2 q6 X8 D0 x8 T6 z/ O/ L$ @" h, `    }
" [) Q4 l. K& x, c9 ~6 _}

TOP

返回列表