返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯 5 X8 r( k- v* L0 m9 B
  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  "+":& L' W1 `. b- X3 H3 L; Q6 h+ p* a5 {
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:2 Q& r4 k, r. @

( f6 ^) q+ C+ \4 c. s. Q. opublic class TQC206" ]. ~8 `4 m- p- p6 u7 W/ d
{3 F, W+ T/ u: _0 d
   public static void main(String args[])0 L  R# J! z. C& D5 b: T& o- G: `
    {
' U9 ~$ Y4 |# G      float a,b;
5 L" S$ W4 c5 h. a+ U: Z      String calc;
' V6 s* r9 f" {0 P      try{  r& q1 [+ e" s8 |; j
         if(args.length==3){
0 D1 t+ ?: i+ [! Y. C, Q) G/ c+ Z            a = Float.parseFloat(args[0]);- w% F& |& h  M; O" Z% K0 D3 g
            b = Float.parseFloat(args[2]);
2 b1 b5 R! t4 d! w1 e& b            calc = args[1];5 ?- J0 K+ W$ M
            if(calc.equals("+")){1 F& n: X1 f2 `6 `
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
% y) E9 R1 C1 A! F            }else if(calc.equals("-")){( d# N) ?, z! K2 [! D
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));2 b2 z( J. w$ b; W6 k8 z
            }else if(calc.equals("x")){9 j1 L% J; `4 _$ ]" S
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));: R- P. ?2 G. R# a8 k
            }else if(calc.equals("/"))
* `: Q  j% c' N/ G. W/ u; k6 L5 W            {
' K- Q! O7 V. D' t, r: u               if(b==0)9 l& L/ o) O0 i
               {
, N: e% S0 |# y1 p                 System.out.println("除數不可為 0");, y/ {* y- O6 i3 q% L& u7 u
               }else1 d. h% L0 A$ J# v
               {
% U0 j( L: X3 o) x8 W/ e9 E. Z                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
: f6 ^9 p# S- V. [               }
6 J2 L2 X2 U: _            }$ Q8 R9 Z8 H* V2 a* E
            else
, A( ]* s. U4 Z            {$ R6 G- d; \4 q) C
               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");' w/ }" F1 e+ ?
               System.exit(0);# [: P5 M' ~/ ?8 s$ r# u" f0 T) Q0 \
            }
5 W; M9 P  R; Q, `1 R  f         }else{; X9 Q, c6 f+ ^/ S
            System.out.println("請使用三個引數,如下格式\n 1 + 2");
3 _8 p+ z2 [% N2 v) |         }! x, {- o! T5 B# k2 ~
      }/ d- y) B! C# o3 e1 d1 A2 w" I0 ^7 G
      catch(ArrayIndexOutOfBoundsException e): m' R  {. H$ @% G( Q: O9 [  W
      {* ~( X; e( j( X( C* d0 a2 H
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());; h. }) y, }! L
      }
$ G4 U- ~3 q/ j# _# j      catch(NumberFormatException e)# a+ X4 W' d/ D. ~
      {: R" i1 i' C/ v/ e3 i
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());- u* r5 [* u5 _8 z( R) j; V
      }
* {+ G5 G3 \/ [) U( l      
2 N% F3 y  u+ Y: l! l) d    }
4 n$ Q. d+ v* A/ R}

TOP

返回列表