返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯 - t+ |$ S0 F8 Q2 [
  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  "+":" W, I1 F" r! }, o- w
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
% F0 e; F9 n' ~3 G+ Q4 c
+ }( X0 B% o5 a* w3 Q* O4 E! q. Opublic class TQC2066 J+ P9 O# E. g/ [
{3 Z0 t- g; s- I( k7 ^6 K
   public static void main(String args[])
- i3 a% a' E8 I" Y. \% R1 }    {$ O/ v9 o; y  H! U0 s" p
      float a,b;
7 u5 S2 o3 ~% M% N      String calc;4 I  @7 b6 P& l! a& o( u% |
      try{( y$ z( h9 _- c- R6 B( y+ d
         if(args.length==3){
# N" ?* l0 C0 V! L; ]0 R            a = Float.parseFloat(args[0]);0 \7 j' d5 C2 j2 ^7 M
            b = Float.parseFloat(args[2]);: a+ B  S0 t* k
            calc = args[1];
. R5 D9 w: @4 Y0 ?% n) ^9 U            if(calc.equals("+")){
/ f) Q$ K7 ]( g) m# h/ k$ f% d               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));3 q- \3 D5 }+ s1 c5 i) s4 M% ?! \5 o
            }else if(calc.equals("-")){  X. g3 E; U- s. R
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));* |1 a: N" z- F, I. N
            }else if(calc.equals("x")){; C- N- A, q  a0 a( y
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
" k! b, K4 a: N3 F2 X+ B            }else if(calc.equals("/"))
0 _: T% b7 r3 z. A            {
1 i3 g! ^- K1 m3 j               if(b==0)# {8 a) d0 h, q* P9 n  x1 f
               {$ z6 |) Z7 ?( O! Q4 m, C& i( k
                 System.out.println("除數不可為 0");9 E' M$ Y& P1 i$ Z: E+ c
               }else
: K/ \% w% y. I% Q* D( |               {
( s' L& h% c' n. j7 A4 B                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
8 ^4 b1 R+ [' D2 o! E+ x3 j! ]               }
' ?; ~) w* I4 h7 ^7 g2 h            }
4 V) q) z2 `; o  [8 G            else
+ U( ^% \, f8 l            {
* I1 x0 i% P. E3 K8 b- J               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
% |& J# M3 H1 }9 w2 s1 O2 d, r/ ]               System.exit(0);5 N" b7 S* J3 R/ e0 H7 h  x9 Z
            }
* ^: N$ c) P8 g7 I) Z5 M- K- p4 [         }else{
* S% P  s+ ?& q            System.out.println("請使用三個引數,如下格式\n 1 + 2");- C* @7 }3 y! d1 t6 q
         }
+ @  i# j8 |0 `9 n  a" x      }
+ E' O3 y2 P5 Z      catch(ArrayIndexOutOfBoundsException e)) x5 h3 T! o+ Y/ U8 n2 @& [
      {
6 J$ c; U* |5 g- c2 v: K               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());$ x& r1 i, }# V0 n5 [4 g9 O6 @0 \
      }
3 Y& G, \" [5 K$ T% S4 d) w, }      catch(NumberFormatException e)9 n, p8 {1 C& b
      {% k6 F+ E! U! Z/ Q- Y: O
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
8 L" r# V$ L5 Z2 J3 G0 @      }
$ g3 k5 D+ b1 ~, g. d      , E" ^8 t( m- c. J% s6 r
    }
2 _; z. d0 k3 D% R# q}

TOP

返回列表