返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯 8 y! k. b& g/ F( T; b0 q9 e
  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  "+":
, {+ _0 U7 Y5 ?, Z0 F5 b% f因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
/ e9 i$ L! I7 C: d
- D" l2 ?' o: [- s: Tpublic class TQC206- ~' r& k) A% _2 G  u
{
4 q) i6 [! N0 Z+ M# T* h   public static void main(String args[])
; _9 m. E) r3 X9 e- Y    {
3 q/ f8 v  t2 b" I      float a,b;
' v: H9 z: d* F  k# l# n7 w      String calc;1 z# D0 C. b0 M
      try{
( d9 H3 V0 W5 M; N7 ]         if(args.length==3){
) d, ~6 \/ t& `4 K. P            a = Float.parseFloat(args[0]);' t2 d+ Q/ ]$ P5 \7 d" l- C
            b = Float.parseFloat(args[2]);& n( i7 ?) n2 r$ u
            calc = args[1];2 l; a: {( f0 O) `
            if(calc.equals("+")){5 C, s4 T1 O6 G. O& ~' V
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
; b7 r7 R, h* B2 f# p; i            }else if(calc.equals("-")){" k* ]# ^. o" u3 t) B: [
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
% f( o! j  D( k6 }& D' [            }else if(calc.equals("x")){
, o& }; Y6 O+ X7 t5 y% e9 m               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));, b9 \( |* Z5 X- E
            }else if(calc.equals("/"))7 f- d9 U! p1 R) t) i3 k2 Z
            {- T+ d& S' |. [1 G: l
               if(b==0)
8 }0 z0 p5 n& V6 @! L1 B               {: U0 {0 c" `6 y" z2 O
                 System.out.println("除數不可為 0");1 r8 l% V  {" f$ C1 ^  H! L
               }else4 T+ B3 B0 C5 j
               {) Q7 S8 }5 M- i, R. F
                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
; g& B' b; R  n0 W' M6 q" X               }$ U% f8 P% Y+ H' L4 F# R" B* b- R
            }
6 n& H# H# Z) b: `            else
( U$ q8 }* x; X+ r3 Z            {
! i5 ]- @) Q+ F+ y               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
7 X6 a# I/ n( c               System.exit(0);  {: `# h  \' O
            }
2 E7 q/ s4 e% X: H" }         }else{
1 I1 M' r5 c0 e. r  b& W( x; d$ i            System.out.println("請使用三個引數,如下格式\n 1 + 2");+ [" }5 W  s& f1 B
         }
6 r+ b5 O! l: h! S2 }* ?" j3 e      }4 ^& I3 X+ G, r. X  {5 a
      catch(ArrayIndexOutOfBoundsException e)
# ^$ K; [9 t3 _, V      {8 q# H6 ^2 d5 C
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());( h4 I) l' X3 _1 w4 F5 ]
      }
6 w% `6 T3 }8 i; p7 Z) z& Q. e      catch(NumberFormatException e)9 H( L* \% r; Y4 K( h  b/ W
      {; ?4 j" N+ r9 m' G4 w
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());- L4 w* Z/ N& Y
      }
8 W9 Y' v9 B7 A! f7 `7 o; r      
* t7 C# e( i9 x, e5 \    }
# J5 z, y3 G; P6 a! i3 y" a1 d}

TOP

返回列表