返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯 $ K6 Y) Z' C/ A" V% X  q+ n8 t
  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  "+":
  _% K9 F% Y  ^+ V2 ]# o$ |因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
5 z4 v2 G9 t) i; F% b% I. Y6 P. n, G& G3 e+ U, I# w- {
public class TQC206# H2 q; L3 N6 F; @3 |: g
{
" T4 J+ G: @3 U/ Q0 H) b9 ~6 Y   public static void main(String args[])# j2 @( q3 p  K5 E
    {7 \6 k. d0 j0 }& B. I! A
      float a,b;
/ z) v# w% z- E: T      String calc;
1 S8 m8 t' f, o  d2 F      try{
4 o* i1 U2 I9 P         if(args.length==3){
8 G. b' L; e/ N2 e2 `# o            a = Float.parseFloat(args[0]);
2 a9 J( K6 g: P- q+ C6 P            b = Float.parseFloat(args[2]);
& k2 p8 u  `" d1 g& T7 n            calc = args[1];9 h! N+ w; l4 U$ z! M0 d# t" i" h3 z
            if(calc.equals("+")){
1 g+ P, H# q# }( H% g1 e               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));$ p# v. D5 \" E" c2 J8 }/ ~0 J+ J
            }else if(calc.equals("-")){
3 g. P  C' s8 X8 }, h( u6 h* o- F               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
3 p' D* [# Q& ?1 c, l3 w2 K            }else if(calc.equals("x")){- b) J; T- V3 {. b7 [$ [) p
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));' n7 k+ H2 F( m# r- o) C5 S4 E9 n
            }else if(calc.equals("/"))& ^7 @+ R& p$ }. c, z" e9 A
            {: U# y5 c' |/ V7 j
               if(b==0)
% b8 Y! y, _) |$ q4 k               {
; R, k* _/ @( B0 k6 p9 p                 System.out.println("除數不可為 0");
! d! Y: S) }1 E* f. W& I! b               }else- S9 [+ I1 K: r  |
               {
. O/ [; h- m. D! |; R1 i                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));' Y$ R. g$ r/ d+ g, Y- Q* o
               }7 Z4 t2 G0 [0 P: b4 @
            }* v1 t' ]$ T3 K% h- s, v
            else6 _4 J" w  g  {$ z2 a+ z: z5 n
            {
* O; P' F0 O* w2 w               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");3 s$ f7 Q% U, ?7 l( `
               System.exit(0);3 c6 J' \# d; C: J: n. C# W
            }, n) G: m2 S4 U9 ~
         }else{
3 I7 i% i; A+ U; M9 m1 `! T            System.out.println("請使用三個引數,如下格式\n 1 + 2");
2 z5 X+ L" m5 ]" J: H9 z         }
% n- r$ Q' R3 F+ p; w& s      }
1 Q" O& h0 l4 z! t: O      catch(ArrayIndexOutOfBoundsException e). s  m" l9 t& @! u9 U. e( r
      {1 m6 }0 c, p# A! O% a
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());" t% t) |+ s0 a) h; p
      }
* I) h& P7 y# B1 S1 Y      catch(NumberFormatException e)
( n1 m1 ~% n+ k5 Y4 ^      {# m; Y! N. @! F2 T
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
" U! m+ V9 h: o, I' Y3 d1 y      }- z5 {2 [' N: R+ b" Y% i
      . a8 d" C3 a! l. W2 e% Q
    }
' S* ^0 e- r# c- I. f}

TOP

返回列表