返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯 ! }- N5 U* t. {5 A! n9 T" w+ D
  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  "+":
; F5 Z4 G6 ^. b0 v6 e8 \因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
4 L( ]2 _, z' u" e+ s- R; t
- J+ }) q! c1 o( `- C, }! Tpublic class TQC206) M& i, d5 t# ]9 T! p4 H2 O
{$ B) |+ R, ?' i7 b
   public static void main(String args[])
/ D7 A% z8 M. G; Q    {& h8 V% _; |8 X: ?0 x" x0 p3 f% @
      float a,b;7 |# e) q2 _6 @2 h" F4 J
      String calc;
1 p2 s# A3 O5 a* c( q      try{
; A0 u% y3 S3 e% ~) Z% ~6 W7 r         if(args.length==3){
6 T0 h) C8 ~5 }7 L- e7 E5 `            a = Float.parseFloat(args[0]);
  L( Q+ X/ `3 q: `            b = Float.parseFloat(args[2]);
  A( q2 Z, R6 w2 K6 E  O            calc = args[1];
& Y4 j. ~9 K, H- t3 [1 m            if(calc.equals("+")){( I  ^% a% w4 r$ V; I0 w  d
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));0 b" j' s" Q+ n# I  s2 C% u! K
            }else if(calc.equals("-")){0 R4 j, e5 a/ x( I% `7 a8 H- }
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));. T' `# u: |; a8 O
            }else if(calc.equals("x")){' Z, W& b2 e( A% s6 l) v6 `2 y
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
% l, g# J1 l7 j/ E! h4 o            }else if(calc.equals("/")), B8 a8 Q) d  P, A9 F
            {
6 g% c1 N5 V& y' z% A! F9 v               if(b==0); b1 G8 H1 Z9 P3 |& P/ y) |
               {5 E+ {! C1 P$ t; {; S8 h$ P7 K
                 System.out.println("除數不可為 0");7 g: I( h# u7 k5 x4 U" P1 ~/ o  W
               }else
+ `5 D  D* {8 K               {
6 Q/ c* P' ]4 {9 s7 \                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));1 Y  P( l4 W6 U
               }+ X! B  ^9 a- X* W4 U1 S# e* A
            }2 m( ], ~4 Z7 S) r. k7 p; ^& s) I, N/ O, [
            else7 t# n6 ~1 ?) h; v" ~
            {+ \  W2 @$ z( }+ S
               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");) O+ _) h! H2 X- B
               System.exit(0);, F- ~# w6 I$ U
            }
% {3 A( {3 l+ [8 k  s         }else{
3 e* |$ y4 x) G: S0 b, P            System.out.println("請使用三個引數,如下格式\n 1 + 2");
' b& y( M$ f0 E8 J6 f         }+ T3 s$ O( H* M1 P$ {6 U" y
      }
7 v- N2 o$ s( E9 |% V3 m. ?      catch(ArrayIndexOutOfBoundsException e); l' G( X# n* ~8 g
      {6 S2 i+ j- K2 _' U. |0 M
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
2 Y- k7 l4 \- U# G# M      }
& J% Q. [6 ?2 L# U5 ]$ T$ Q      catch(NumberFormatException e)5 _, s$ C/ Q7 x9 E
      {
$ F) U" T' R2 S( `$ T         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
3 ^: c; c% e9 `$ B) Z: M& A      }, |# `( i- w& o3 G( ^- b
      
% w) i/ T* b7 D+ n    }( q# z6 b* a# H! `
}

TOP

返回列表