返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
& Z/ h; j3 _+ [2 u9 u3 _
  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 M- U) o" w) ~. ]; B2 w4 m
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:0 z4 x$ D5 w( D- ]0 r
& k) s. p8 H4 j! \  t! M4 i. G
public class TQC206  M: L8 l* I. p* e- G7 _
{/ \/ w' b$ H+ S7 \% K5 o, A! M3 A
   public static void main(String args[])
; E! I$ n7 P7 n' N    {
( ~8 h1 Y1 n, s; t9 {9 C      float a,b;* S: j- Z) K  B
      String calc;/ ]' \% G; w  a, H: W$ D
      try{& s! X* M8 g4 ]% A/ y( u
         if(args.length==3){
& s2 h' p' N! M0 U# b% @            a = Float.parseFloat(args[0]);+ A  U+ x7 v: Y. n* _
            b = Float.parseFloat(args[2]);
7 y& E; ^0 H; T+ l  r            calc = args[1];
5 k' a+ a# a3 E8 ]            if(calc.equals("+")){- N  j5 O1 h  V- `4 n
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));3 q& H. E7 [! `7 z% P8 L3 f
            }else if(calc.equals("-")){
, k# s' U# s$ D5 ~0 a" h               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));# Z6 P6 e3 M% _5 h# U$ G
            }else if(calc.equals("x")){7 N2 g$ c1 v; `/ c
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
( i: q. y* J5 y; ]  \/ @: O            }else if(calc.equals("/"))* j8 o$ t4 _( k1 ]7 m$ h( }2 R
            {
# z& H$ L5 R( b4 @, g               if(b==0)' J) f3 F* l; T2 P  G+ c* f0 p% j
               {; f3 h; D/ j% j* g, K
                 System.out.println("除數不可為 0");$ D9 Q5 t  k5 b$ w7 {6 n8 I
               }else$ y5 M2 _9 L: h% ^8 Q# R
               {
  j8 m- F8 m9 d                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
- W0 J( b1 E6 w               }
3 i' ^& ]+ t/ B            }  _- a9 J& g8 X5 C
            else
, M3 \9 c4 m4 v- Y! @( z            {
2 j% P& N' e0 X6 ~2 [( {2 c% A8 w- x7 O               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
7 Q$ l6 C/ |% O               System.exit(0);
8 J% ]- H" T0 s            }
  w1 l8 Y) t/ f: }* N3 Q         }else{
# W. D3 |) K# h$ h0 F            System.out.println("請使用三個引數,如下格式\n 1 + 2");
7 B; I  ^5 Z( S4 H         }
3 Q$ c1 v! f* t1 b      }% \  B9 R9 [; s
      catch(ArrayIndexOutOfBoundsException e)
: s" T# ?1 W6 k) T( E& s8 G      {
" H0 T* {. ?& h7 L               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
  V" @; w0 _* C1 a4 y      }+ p4 U  g$ R( M6 ]( n
      catch(NumberFormatException e)0 M& G+ A8 t9 n9 Q% I* C# r
      {7 o' B. V; M# u
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());9 W) X! e, v. W
      }- T6 h) B0 I' }8 o3 F
      
, K8 _* g) F8 @5 `- q; M- G9 j0 F    }
& f. `  R: Z! \$ Z, _}

TOP

返回列表