返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
( S# f+ i6 R1 t  k& A; H9 ]
  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  "+":$ h4 |! ?* i6 A5 F: w
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
& K; N2 }2 T) }* K( E
% A+ f+ T/ c5 Cpublic class TQC206: q4 I' G! H2 g7 B/ P& |
{1 m# p, V/ r: }: b& D9 y" R
   public static void main(String args[])
! f/ H7 O. N: b% t    {
. P+ s# z$ r+ M$ H, p- a: x( `      float a,b;
" c5 h$ V( s, O. \# h& [( B      String calc;; l, Z8 u8 ?2 ]' M7 n8 q# S. P, n5 {
      try{$ ^9 g( P4 U9 g, u
         if(args.length==3){
. ~- K5 z+ A0 R" F            a = Float.parseFloat(args[0]);$ _1 W0 E2 [8 X+ S" Z
            b = Float.parseFloat(args[2]);
! V* T% s3 Z% ]            calc = args[1];6 W. v1 S# H8 M* H5 l, o) C
            if(calc.equals("+")){
- Z" @( t! j3 p7 t               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));: I6 g2 W5 W+ b  Y& o
            }else if(calc.equals("-")){$ J2 E: ?' e" J+ p' L' S
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
( n4 e/ r* j9 h. b( w; |            }else if(calc.equals("x")){
3 Z$ e1 S0 p) N" @4 D! H/ b               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));! [! A# g* y: m, Q. o5 W+ z3 ~- E
            }else if(calc.equals("/"))8 E" G  Z* X/ @' b/ b" Z
            {
8 R4 k* U2 u, D  {1 E               if(b==0)
- I( G9 g9 n7 b' G/ u8 j2 h               {" r/ ^  [5 L7 t# Z$ ]
                 System.out.println("除數不可為 0");
; T$ I/ {% o8 G               }else
3 E2 e% N" `% j9 D7 U8 d/ z. C2 h               {
/ {. o; ?; R* _1 V                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));& j. G1 m# l( G
               }9 u! h; I) C6 M* x
            }
2 Q4 v( E. {4 Q  N            else) `# _3 a- {4 J' O$ r  \
            {
& _5 K4 n- y& C: J' k' C$ t( q               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
1 W6 l. `' `$ p+ p$ d8 d( t6 q               System.exit(0);
5 o! `$ ^- Y: C' G1 N5 `, {! k            }
% ^* q7 }: u' x& E         }else{. I* W3 q" H9 p7 A$ J/ h+ C
            System.out.println("請使用三個引數,如下格式\n 1 + 2");
8 U+ ~: ?' ?/ U; o% b# p6 {& a         }
+ ?9 o$ J; g% J      }
  d! p6 h% W+ i2 ~" S& s0 X      catch(ArrayIndexOutOfBoundsException e)( K! t- V9 x; R% n9 T# O8 Y
      {: @. C: |2 V2 a! a3 m2 B
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
8 P2 M7 r' W3 @  d      }( }" t; P% g' R( K! W. r1 `  V
      catch(NumberFormatException e)
. n/ u. Y/ f' k2 J+ z5 y7 q" X$ E      {3 K# ^# U! c3 a) [  M
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());! r6 J. G6 I  p& B
      }
/ @. w5 i: e& ^9 z! T7 p      ! \' b* L- Q6 a9 s9 Y- f; V. G/ Y
    }
; n( b" a3 X/ R9 c}

TOP

返回列表