返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
* g% _% C# e% E1 G4 a/ H
  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  "+":
' j- ?7 _& E; d因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:1 f$ W6 o: L; ^

$ r5 J9 {: l( `' N% c+ ~public class TQC206; w% o0 W3 T% I0 q+ x/ G2 a9 x
{
2 u9 c/ f* h, ?9 g% E3 T   public static void main(String args[])) x2 K) {9 A& m% m
    {7 e' M$ Z% O. I- N7 g% g% J. x
      float a,b;
5 r9 z5 G: _9 b- c, z      String calc;
7 n9 J2 C! x1 K      try{
; ~7 h3 n& l! a* e         if(args.length==3){
- _7 m' Z$ A  Q' T4 b/ I            a = Float.parseFloat(args[0]);4 n& A  K6 o  k
            b = Float.parseFloat(args[2]);; \* y! l5 S( T- T4 s& o
            calc = args[1];
) D* O$ N6 Z$ Q& |/ t1 ]/ C) R, O- I            if(calc.equals("+")){, Y' n1 \9 Y' A' t  W" w9 G, r7 w, e
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));1 W0 h1 V+ O2 D1 C+ o0 }
            }else if(calc.equals("-")){
3 d2 {: O  L2 A) {* B               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
8 x9 O8 J7 }, l0 A% q- D            }else if(calc.equals("x")){1 x/ Z" N3 v: N/ X+ E& [
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
3 U$ W8 {$ N4 g  y% a9 {            }else if(calc.equals("/")): O, |0 _' i8 k6 W, `" a% L
            {+ _1 X8 H" m5 a* B" w
               if(b==0)+ v: f5 ]8 o& P! ^2 p7 m5 q
               {* B3 K3 @. ?. V- [7 `: e
                 System.out.println("除數不可為 0");
% s; Q" ?% I( F) k               }else
# X3 W+ p7 i: h6 |8 a% K+ {               {
+ c7 R* m  E& k% B                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));2 Z( y, l1 R1 W6 t+ `+ j3 ~
               }! o! Q: c# k( ?1 X& {
            }/ m, a- C* l+ m/ ?
            else1 {1 p* c: ]2 x! T! M* a
            {
+ Z8 M( e( p2 r6 n& L  N               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");. P2 t6 ]  b4 C! d) Y& V0 L+ O
               System.exit(0);
! J! z4 @! J- h' K            }
, k: \. M1 R" n  w7 v         }else{
  D8 O, J4 i+ P' ]9 \            System.out.println("請使用三個引數,如下格式\n 1 + 2");
+ i. h/ Z' a7 s6 b$ V         }
. J2 a1 ]: @! h$ p      }
) n) U8 ~% s. Y5 V& O0 e; q: v      catch(ArrayIndexOutOfBoundsException e)
3 R$ P& y+ d4 Q" [0 v      {
5 P, h0 I  C# X+ g* R               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());. s/ ]4 J4 E- Z+ O
      }
; n* V0 ^/ f. g      catch(NumberFormatException e)
- s+ `4 O+ v& Q0 p! Q6 E( C. ]/ G      {
3 z' h7 D  D: U4 R         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
  _9 y* g5 f2 `& T      }' v6 y8 S: t0 c2 Z7 W
      
+ x/ P  C7 }8 Q5 g) h, l    }
7 n% B8 O% y) _; U: @" n}

TOP

返回列表