返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
" q7 W+ ~: `) q2 f5 k8 L  X' @
  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  "+":
0 x/ s! P! E' B; s3 A5 @5 o因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:, v: @3 B& Y/ \2 c. g1 _0 D

4 ]8 H0 q/ t7 q' i+ c$ L- J- E1 ypublic class TQC206- ?9 i4 a& f4 F
{
8 I  o/ ~" ?+ T" t& @( }   public static void main(String args[])3 z0 i$ d! x8 j" T  i; j3 J
    {4 u* i+ ]4 B* W" D! B% y7 h
      float a,b;; ~7 N. k& ~* M$ B1 w
      String calc;  a* Z% |* T* m8 S$ L+ y
      try{) Z3 Q2 b) }( n- h5 n
         if(args.length==3){1 p1 d% N2 m; s4 f4 P7 C
            a = Float.parseFloat(args[0]);+ w" O; _  D* N8 ]4 y! J& K1 U1 L) {
            b = Float.parseFloat(args[2]);
9 B5 y. w9 |2 J* a* ]3 J8 w5 o            calc = args[1];* v" N% h7 s3 K, L9 ?7 `* y* }! t
            if(calc.equals("+")){, ]0 @" Q% S; n
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
1 u1 y* }( _: j; L3 x8 m            }else if(calc.equals("-")){
* ^. H; i' {7 P; `% A               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
1 W; q: X7 `3 u. W; L& _            }else if(calc.equals("x")){& ?7 l9 b% ^4 A! n6 p
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));( r3 S* k; x) p  W0 U
            }else if(calc.equals("/"))
$ P* `0 C( L. ~            {+ k8 B8 Y/ k/ M# M( {! f2 T6 u
               if(b==0)
4 \* h2 `2 w+ Y6 o  L9 N) H. z- q: ^( @               {
! k5 z- \. {& k% u( s' W7 V                 System.out.println("除數不可為 0");
# |, s; u3 q1 Y               }else
$ T1 Z4 A3 |. A. N) L6 f8 z( Q               {3 g; [& Z& F/ ^( T( H
                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));' [1 m$ k) Z! K- c% l
               }0 I9 T5 q. `, c3 |1 h
            }6 _/ I! V1 H. B3 D) g# \6 c0 B/ Y: ~
            else) S5 V. q7 B4 Y# E+ {: q+ H
            {, E' P! N# f6 E) i! O. I  q' U
               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");; T8 U0 n/ F) ?7 |2 p
               System.exit(0);
4 H6 }1 h8 F5 z9 e& u            }
6 b4 e5 Z+ e. Q6 i         }else{# _4 M* y; g8 I0 c: U) k* L9 c) p4 J
            System.out.println("請使用三個引數,如下格式\n 1 + 2");
2 g* V; J" m: J" s6 ~         }
1 M9 P! u$ s4 p7 `, `2 B! C      }) L: ?8 Z1 M( {3 A0 T0 z* R
      catch(ArrayIndexOutOfBoundsException e): `. o/ F9 l: N) B* s) o: x4 ?2 ?
      {) O0 Z/ G1 @. P: e, ~# c
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
% s6 Z. s1 B7 [; b. Z# l1 |      }/ f& v9 i9 y; ]7 u5 P" H" I
      catch(NumberFormatException e)1 {* Y9 Q  e6 Q1 r! y* L
      {. @3 B( P+ q: b( E2 t
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());6 p1 {* @9 D: ^! H
      }3 \; i( j& Z2 S: g
      7 Y3 |6 ]7 ]% k7 q; ?
    }
3 J1 L# S2 }& O* V) R4 t: L}

TOP

返回列表