返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯   l* ~' `5 w; z& z( _
  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  "+":
! O/ e& V, f& t$ {2 `& n* p/ _因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:9 d" q# x0 m% g) U# w

8 u, g9 D9 {& apublic class TQC206, B9 D: B+ b3 L( m3 H/ P
{: ^, d, X' D; R9 Z) n1 h2 J
   public static void main(String args[])
5 s9 Y' \; N) h$ N6 e$ I    {9 A9 D$ k0 c0 O! A" X: A( s
      float a,b;
* \* F9 X: S6 T3 y" A3 d      String calc;
, _8 `6 ~% j. `# b+ q/ h1 D      try{7 [5 Y* I0 _3 o$ S( `( \8 g
         if(args.length==3){
2 W' N( a, p, N: {& a            a = Float.parseFloat(args[0]);9 _% y  @3 ~0 K3 h  x
            b = Float.parseFloat(args[2]);$ g8 g/ ]: W/ N9 H+ W* H$ P
            calc = args[1];# R: q% K7 _5 w1 @& s
            if(calc.equals("+")){
  M8 g6 S$ J) i! b               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));  r; H1 m0 s& |
            }else if(calc.equals("-")){
3 m8 }. }% c5 D; I               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
. H; u( U* }# k3 k            }else if(calc.equals("x")){
5 e# e/ V' G0 K  u3 X5 K               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));" C; x' H7 F" L$ @& k! i% ~( i
            }else if(calc.equals("/"))
  Q7 N+ a) S" y% l3 B- G( _# j& g            {
% A) k! g) a6 U8 B$ k               if(b==0)
6 O2 e) T. R) ]               {
2 }/ D$ ]' Z4 f0 r" F4 a                 System.out.println("除數不可為 0");! [, s8 x' }+ t7 F* c
               }else( x% P! ^$ u4 _! C( i4 }) v, k
               {
! {! n: M- {% \) w. ~                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));& q! y6 Z5 [6 _8 F" v" E
               }
8 s% P3 V0 Z) D            }
1 Y2 e6 Z; g9 T4 D+ c; L) B; A* a7 M( V            else
- B; w, r* y! b4 b            {
/ l) F, X% ~3 @+ x               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
- ~4 ~  L7 z5 i, l- x               System.exit(0);
* [! t" R0 ?% x; p" q            }
7 w: R, y  m' Z% d8 y& s% F. m1 j% n         }else{
, c/ s# h* `, ~) c+ _7 a& E            System.out.println("請使用三個引數,如下格式\n 1 + 2");
2 g5 V& b5 u: {- R' T         }
+ C6 H4 m- e( z1 W1 ?      }
- F4 p) i4 L, n. C      catch(ArrayIndexOutOfBoundsException e)3 U5 Q% w2 i% G2 b! ]0 @7 p- |: ]
      {, `! M* ]7 ?/ j8 j" L4 x
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());: g  L# z* v6 i; j2 f
      }
1 \7 |. z) c2 X9 S' Z1 z1 e      catch(NumberFormatException e)* w/ M+ u# L, M6 G9 T; y
      {( ?6 k) V% ^- y5 S7 R  E2 ^! d
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
6 ^4 Y- ~! f# I7 S& R5 v      }) Z  E" h' U) _) q1 i2 U
      5 ]" U9 h# ~* m" b
    }
8 I% g& q2 M; J}

TOP

返回列表