返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
9 M4 @' O  j0 H3 g! Q
  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  "+":
" E' g1 p4 T+ @0 V# {' t因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
' ]! l1 y' ^( G, n- _, {$ }4 ?" K3 v
public class TQC2068 x. T! k  x. u: X
{
1 P' m# ]* _, c   public static void main(String args[])" \) j. f0 R0 }. y
    {
+ x0 [& Q6 [! }; G6 y# k( k      float a,b;: U6 m. o8 p, f" o8 `
      String calc;1 J' o& X; X( y5 S, D1 m+ b
      try{' G) l/ @9 p" F" e+ l
         if(args.length==3){
$ B( E! L) L4 y% ]            a = Float.parseFloat(args[0]);3 f3 w8 r& A; U0 I4 L2 @: M# s' B
            b = Float.parseFloat(args[2]);
2 |. a* X4 S9 X# t; I            calc = args[1];8 A7 \+ x8 f& x% }
            if(calc.equals("+")){
6 ~/ u! l" @( \6 c+ I               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));8 f# Z5 J1 \( v" }+ a4 X
            }else if(calc.equals("-")){
1 E; K  X9 B- T! w; g8 [               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));0 R4 y$ W. B7 S
            }else if(calc.equals("x")){
) B. c, s7 P6 c: P0 Z               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));6 N5 T7 C/ I( g
            }else if(calc.equals("/"))7 p& ]) f8 k9 i4 `
            {
' a0 M# ]1 e& S               if(b==0)
# c/ R, u( Z' L: D; V               {
* c: c& f$ }* p& C                 System.out.println("除數不可為 0");
( e% Y! W7 v4 K' b# z               }else, v( \0 w; N/ ]. Y* z7 i% ]
               {
  t, K6 J0 f$ I. K& b" J+ v                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
0 M4 ?8 o$ Y; l# ~' \! }+ }# h               }
& Z# t+ R2 j! Z0 ^+ S            }: d  q: l8 m! k4 M
            else4 K4 P( |- p4 ?3 t$ t, r
            {
0 l3 @% `; C8 P$ p5 L) B! I               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
0 T0 W, A# w1 ]0 w! I: f  Y               System.exit(0);
7 W1 \8 D' Q% u: Z# z( h) y            }& g* F- s' y3 B* F& l% G
         }else{
9 n1 O6 U- t$ Y4 J            System.out.println("請使用三個引數,如下格式\n 1 + 2");9 _" L+ S, h$ |- U/ Q
         }
# y" b$ d- P/ u: k      }2 u" i, g% i+ z8 [4 T0 `
      catch(ArrayIndexOutOfBoundsException e)5 C/ t, ]3 K0 S9 L
      {0 u8 `8 W5 W1 ~$ m) q
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
% f' V( i2 `7 n* ?7 T, s2 f      }
4 U7 x2 @; |: C      catch(NumberFormatException e), F  T" X9 q7 M! L6 h
      {
" M6 N1 D. c6 Z6 N         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());" P* w/ _$ f( u+ U# b: e- Z
      }
( r" T0 T8 `! U- q4 a, _( g+ x" n      
5 ?7 Q3 E  w8 t* ?6 |4 h7 X    }
$ a5 P3 Q0 b5 @. N9 Z" g8 `9 V}

TOP

返回列表