返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯 + d9 b% u5 d% z/ G+ A
  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  "+":
4 b5 I! e# g0 J  o! m# H! I" q因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:: t/ G( N; z, K: h
3 q$ d4 Z4 Z9 o' M
public class TQC206
) s/ q+ v( F8 A. e* O5 a{2 l& H1 g1 C& T! L, B4 T7 F& O
   public static void main(String args[])( B3 \3 M% |& a6 `: \
    {# |  r: R$ Y) u% ^# H
      float a,b;
0 ~( x! o5 w; r  e5 H      String calc;
/ [0 L% a: U# G1 w3 T" G      try{
" n' v1 k  D% i7 D* d6 e         if(args.length==3){
8 g9 q- c  i+ Z, X) d7 z; k0 F            a = Float.parseFloat(args[0]);! L- R; v. y% L! l
            b = Float.parseFloat(args[2]);3 \7 }, h3 R7 q' M+ ~* |
            calc = args[1];
5 Q! E8 K* ^2 ]* T' K0 \7 q            if(calc.equals("+")){0 ]; S% z. D2 `; g$ T/ `; `
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
3 B: u: I( D+ I+ F% A            }else if(calc.equals("-")){! }* c. ?. J% ?; h
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));& R, @0 d* s1 i
            }else if(calc.equals("x")){7 B0 [5 A" {. O7 F6 x7 Y
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
  a! `; v5 M7 A& i0 R: E            }else if(calc.equals("/"))
9 f  }+ P6 F. h, g4 o% w            {9 @) D4 s& ~3 y) f
               if(b==0)
+ C4 c6 d5 i! K$ o( {               {% J1 V" u  A+ i& b
                 System.out.println("除數不可為 0");
5 b" `  x5 _2 l6 }/ m               }else& w- u$ Z" N7 H% S7 t
               {
4 i4 m) [; g7 j( _& u7 V) e                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));3 O& Q: p& }& E4 i) H* T
               }
7 j1 N' X$ d5 m1 O" S            }
0 k" w" \0 J) P0 r            else+ C' b  o7 H7 P  K, V
            {
5 F) H$ P7 q2 I: v% }4 O               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");& z- O* L" u, Q" k
               System.exit(0);  Q1 b# P: L* g* N( ]5 S( u
            }% L( m/ E! X9 ]( s; Y
         }else{$ V; N; r0 [2 d, Z" y, b* o
            System.out.println("請使用三個引數,如下格式\n 1 + 2");
: `! K. ?! }: ]+ Z! ~         }" W# }. e( j! I/ G& _% K, i
      }
$ Y4 X; x$ w: B3 ^1 x3 l! X3 j      catch(ArrayIndexOutOfBoundsException e)! F- g9 q) \0 P: W- B" F; \1 D
      {
; U4 ]  Z" E; O' h6 J               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());5 B- h% B/ ^& X8 e
      }5 l. z: |& n  `7 z  Q
      catch(NumberFormatException e)2 S9 t8 \8 U' ^5 q8 m' A2 ^
      {2 W- L) u) }; r  s- z: t6 E
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());. X3 D& ]  a( J, G7 ^( u
      }- J" Y# R) o! Z4 }0 Q! X
      0 ~8 Q% u! w! f4 I3 d
    }
; N) R* t0 S! T- d3 n# @5 l- _}

TOP

返回列表