返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
* b3 _$ Q* b3 |4 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  "+":: G: V7 `- f. c
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
1 u7 Z1 ]5 `$ M8 X4 [) f# n
/ c, d* w8 H% Z0 s* ^public class TQC206
, U) T, b: M+ L9 W2 N0 E, j& z{
" ~4 U7 V% S' s  K; j   public static void main(String args[])
1 F& Y& V5 ?8 e7 E6 Y; Y. I8 ]    {
) F. ?' I  m- D; G      float a,b;
& `9 @: x3 G( j: y9 `; r" ]- O      String calc;
& z" j2 M5 B4 q; M# M      try{
0 @" o! x$ a8 X; m, {0 X+ n         if(args.length==3){
* b" @; H% d# g( I6 p/ E            a = Float.parseFloat(args[0]);
" O% D; u6 a6 n            b = Float.parseFloat(args[2]);/ Q4 S7 X. f, i1 h
            calc = args[1];0 J, y5 V- k. |1 p, R  x; N
            if(calc.equals("+")){
/ k! r3 `) Y6 J* Z: I& i  y# Q               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
+ Q8 L. a& [" o  ?  ?* c( U            }else if(calc.equals("-")){" h! O7 {  f& H0 Y- U
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));5 p. |  i$ `; s5 @: {! G
            }else if(calc.equals("x")){
  ~9 C* O  W9 C0 v8 y6 n2 U. M               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));  L) v0 u2 L8 K
            }else if(calc.equals("/"))2 R' g) w' O! k# q* `- P6 u
            {5 W: b: w0 D: G& a) @
               if(b==0)& j9 |8 m( z# Y, u: m
               {
- [: @6 J% t3 q+ E  }# [                 System.out.println("除數不可為 0");
- L' _  j+ j8 }+ _8 y2 ]) t5 f               }else
4 _  L- t4 _9 H9 w1 E4 B! |8 m               {
$ m4 ]1 \6 x" y2 R7 Y                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
* D7 X+ w# i! [# v7 A, B               }
  m( Y0 T( {4 d5 V4 a            }, `* H9 d7 @4 c/ c2 H5 s7 N1 y4 x
            else; b/ R% Q  H$ K* l+ @3 b2 G5 S
            {
1 I* k0 \$ n3 h  R7 E               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");6 c1 r& f; u: o
               System.exit(0);- o7 o/ {1 D$ M9 u. ]: a2 I5 E
            }
, s- V3 \! m5 L1 D. W         }else{
7 n% L, V2 Q, S2 t. v; g            System.out.println("請使用三個引數,如下格式\n 1 + 2");  w  t; {6 r" a% D& O0 e
         }# v' ~+ s! n+ O0 W) c0 y
      }
6 D+ k8 @) ?7 j" j% q+ a      catch(ArrayIndexOutOfBoundsException e)
% ^  b' x0 j: _+ t      {
, V, I$ {- d& i# L/ n# o# s               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
* N& z+ g2 L3 X( ^3 F      }
0 N5 s! t; s& I2 {( j* [. u      catch(NumberFormatException e)
  r; I7 \$ x, \# X2 ~- Z      {% a9 Z; J0 \7 Y& G  e" y3 n0 j! ?- U
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
4 w; z8 t2 _+ o8 {+ e& B. w      }3 n+ o4 k3 @9 W' i. J2 F# D4 p" Q* X
      , v( A; Q* V. ^9 L
    }* S6 E8 |/ z7 Z( _8 x
}

TOP

返回列表