返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
; B0 K) O! o9 ~
  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  "+":5 ]& h% G  U% v7 {6 l+ e0 u2 I
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:5 U  |' C6 K' H# R" D3 Z
# B0 T- V4 j+ N+ G8 _5 `
public class TQC206( _- R7 h  d+ Y5 |2 ?
{# V- j- y: O& K$ V& B
   public static void main(String args[])! g) y6 c2 n5 \3 P: z% v( o
    {& g2 v1 x3 V% e7 d" d, x
      float a,b;# y9 j  \4 B0 ]1 T7 A
      String calc;' p6 r( y3 Y& k
      try{
& ~: x4 l" g8 g/ ^* F& b/ c         if(args.length==3){; w' X7 W' j1 Y6 ~: _: d0 a) [- g
            a = Float.parseFloat(args[0]);
0 h& y1 c4 h, H            b = Float.parseFloat(args[2]);
% F. K. Z; J5 W+ G4 J" ]7 V            calc = args[1];
8 @, q6 a6 ]' D0 a+ T& `+ z            if(calc.equals("+")){
5 k9 Q; i! y4 W7 Z& P               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));$ j5 {  T, j4 f4 \0 D3 V; I
            }else if(calc.equals("-")){
4 g: Z9 k8 V0 A: h; f               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
# }/ i7 x- G& F" S& v            }else if(calc.equals("x")){  G/ n2 }$ ?8 w7 f6 ^
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));0 i" _2 X( R8 p$ I; F% I5 t! m# Y
            }else if(calc.equals("/"))- A" L* p  y7 }5 x8 ?
            {1 `$ x' B  |2 v
               if(b==0)
- u* ]+ s7 B& X2 M% O7 J               {' I/ W; P7 h% ?5 Z/ |
                 System.out.println("除數不可為 0");
! `. W6 |" n. O3 n7 B3 P6 Y8 ~               }else8 e) E! h- W' G
               {
! L8 D. t+ f( r. m* ^1 w                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
: }  \: S- S/ {9 g               }* x- {7 `9 N% b$ F! M! z
            }
0 n* S& y+ U0 j1 y; f: q            else7 Z0 w* V+ L/ ?$ H, x' j
            {/ p. ?% o  f3 Q" H
               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");3 {( C9 n' x: `
               System.exit(0);
5 l/ w+ ~; u4 B) i3 K( n            }4 O* k. c1 K* m0 M
         }else{
6 L9 j. f; \2 J, e) ~2 r* C8 ^1 y            System.out.println("請使用三個引數,如下格式\n 1 + 2");
5 u4 `$ {8 ]: h5 j% \0 ]         }! p2 s6 ~2 Y3 l9 u  ^/ _5 R
      }
6 Q3 t' P8 Z5 |% @2 q      catch(ArrayIndexOutOfBoundsException e)2 n" c9 E& m7 g0 V1 i% N
      {
! o( Y  H% v* w2 z5 ]  ]. K               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
+ A. ^3 d3 a$ n) G1 t& I) t# d      }' y7 |4 N* f) h7 o; p/ x
      catch(NumberFormatException e)
( Q4 w7 Z1 p5 C4 h( Y      {
: K3 ~1 n" Z' {+ V$ m- c0 ^0 `3 e9 A5 _         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());5 ^& g% |1 `  s% ?
      }+ U: E' A& w8 k! }
      ( z: B- T: a/ I9 Q1 m& W
    }! O& W* R# D6 t8 J( a. G- D) t
}

TOP

返回列表