返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯 . A5 h3 J0 D$ e  M- v( h+ D, R0 f& ]
  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  "+":
+ C2 S9 L! k1 m2 A因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:8 @  G. t) k* Y# x
" ^) o9 v- k! _& I
public class TQC206
* J  q; M: S# F2 Q{5 L# g1 n' V, d3 i: T
   public static void main(String args[])
5 v# ~% y3 i6 F6 Q1 I8 R' ?    {
6 E" x+ }+ [! u. h" p5 F7 W1 U. f      float a,b;
: ~: K' w* W8 ]7 g      String calc;
4 M" U% m! v# C( I. m' T5 V      try{8 |9 q: U3 p/ k( s% p" n3 _
         if(args.length==3){
" L" h! f7 `, L5 {# I% E            a = Float.parseFloat(args[0]);- \  V7 Q. _0 i: E& j7 [# D* Z
            b = Float.parseFloat(args[2]);
3 M; g, |) _$ r- r% |  [7 M            calc = args[1];
/ r0 I6 R- N% M2 G  ^4 @1 K            if(calc.equals("+")){! G) D) D6 j4 I; u3 l: z
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
6 A8 t: R6 V3 Z1 \; I6 [            }else if(calc.equals("-")){( r! \' g9 M8 j- e. ?) {$ C
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
9 I0 Z: s2 I. c2 p' {% Q) v& j            }else if(calc.equals("x")){  s& l: J) }4 C+ Q2 t
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));) X% ^+ @1 G0 I& J3 T3 J; f
            }else if(calc.equals("/"))$ w1 J2 u( O) m0 n* t
            {: h& F, |# f1 X# b- j& ^2 g/ ^
               if(b==0)
- S, [; f, _' ^, {) A- E               {+ _1 X4 z/ s+ g) r& _4 C
                 System.out.println("除數不可為 0");+ S. Y/ a9 _8 ^( i- ~( p7 |0 v
               }else
. [. ?4 q- N3 K               {
5 {# J) V7 f! y. R  z$ F                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
2 k9 q. G  _+ Y+ g6 {8 ?- V7 n               }. P+ A3 J$ f$ y2 f8 o. _
            }' P9 S# V2 J/ W8 V' W1 b
            else; x6 j+ Y& l. j8 a* [0 y3 J
            {
" K0 w% A* p5 p3 b               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
5 M$ x8 I4 ^8 u4 O" S6 C+ c               System.exit(0);6 J& p+ i9 @4 w: x" O' U0 `. |8 F
            }
! P% |% g8 y; f$ X4 Q( w         }else{3 a5 f) D, [* h5 h* R' x/ G: s  B
            System.out.println("請使用三個引數,如下格式\n 1 + 2");
. w2 P6 T  m: m- D         }
' ^# `0 R6 j* c7 F) ?4 {, d      }
0 M& g/ ]! n% m; R      catch(ArrayIndexOutOfBoundsException e)
( O7 J& `/ d# A) g, W0 y4 L      {$ |3 `% I/ k# a
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());& g6 M; o# A+ b# X" ~+ G+ ?1 f
      }
, H4 x! D$ s# h      catch(NumberFormatException e). e. Y# r0 A1 B! k
      {) j" A" C& `9 k- A  a
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());+ A1 u  {4 d% E+ g8 K
      }  a& i7 E* a' J/ V1 V$ V, V2 L
      & p$ H/ f$ ?$ F$ N6 k# ~
    }; W! K' e  S( w( \0 o
}

TOP

返回列表