返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
% ]  g/ D8 j- Q. 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  "+":: [( o' n+ O! t# ~$ D
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:+ N6 n+ `' D% `/ }8 [1 _$ Q5 ~

1 ~& W1 ^( _: X( d( B$ C% S2 Ppublic class TQC206
: b1 T4 ]1 f) k* |5 N{
. C7 E0 [" N9 Q: B/ |7 v0 D. r   public static void main(String args[])
; t4 o1 u& m% K9 P/ n0 I    {; G0 U9 g6 ?$ a, Y: a
      float a,b;
  h3 \& u5 x+ l0 ]      String calc;
* n  o. }7 E+ ~! Q! a; r. J      try{
# q% P0 y$ d7 `4 J0 m& h         if(args.length==3){
# h; b7 O4 S0 }9 Q' c# O  }2 c            a = Float.parseFloat(args[0]);. g, B+ n$ {3 H/ e
            b = Float.parseFloat(args[2]);+ N- h  U$ {3 s: q
            calc = args[1];
& I$ w0 ~) T* v% [! s) [  I; M* e. @* C3 a            if(calc.equals("+")){0 p* z( Z5 r. ^/ J. h3 b. N9 j
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));% D/ U0 u& D; n
            }else if(calc.equals("-")){% |$ f# [/ ~; B' Y% u
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));, m6 @: B* L4 K1 V) z
            }else if(calc.equals("x")){! H! ^) p9 U7 u- Z8 K
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));  Z8 `* {8 Z: o- X( X
            }else if(calc.equals("/"))/ W: C2 v) C: L) ]$ z) `2 A* U2 k7 x
            {% a# f+ Z1 C0 j: X& D0 C- ~
               if(b==0)
+ E9 x* P5 O+ o# @. D4 T. O  p1 I               {
' m  K" j; m' v  C" _# U& H9 G                 System.out.println("除數不可為 0");$ H1 Z( l% l# o$ _" A6 W
               }else
% ~1 [- f/ X% q: N. l/ G# e' [# ~7 w               {
3 m: r* U' K4 m! k7 n+ E8 z5 F                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));* R& \$ x1 B( f$ H' _5 g  M
               }
; P2 o. J7 o5 s! C/ j1 m            }" k; V6 V3 m+ w- |( ~/ ^
            else& ~: t2 D# m, U& z, f! i: M
            {/ j& l, Q4 e: {2 r5 m
               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");" {3 ?' h) q- e6 X) S* w& k9 Q
               System.exit(0);9 Z3 I5 J$ w# H+ A
            }4 _. t0 f% b% \# J5 d0 w. z& E3 N
         }else{
3 o8 n! V( c1 s6 }% c            System.out.println("請使用三個引數,如下格式\n 1 + 2");- u3 o: ?2 h' W. ?- `) z. k3 l
         }# q& k, L' A& j$ q
      }
8 B6 F* ~1 Z) h4 R; Q5 t+ F      catch(ArrayIndexOutOfBoundsException e)- @2 R% |' g4 u) O: G  a
      {
: b6 j& B( D* Q& \$ a               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
6 B# X/ L% K) k% s: v0 O. I      }+ h4 J# @- N) ]: q- @
      catch(NumberFormatException e), w  s# z% S8 G
      {" c( c$ ?/ A, F) }$ ]
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());+ I: x# I, f# _5 p! ~
      }: S, q2 O& C2 E  W0 W8 X
      ; Z/ f7 e  C# t  W
    }
# n! |- b: Q* o: G" Q3 q}

TOP

返回列表