返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯 * T/ H2 `* V& p  l
  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  "+":
. A/ o# Y7 r- E$ `因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:4 x% T$ J) @( f, k# y
2 J8 c8 l9 D: R- p2 z& G' X
public class TQC206! u6 u6 D& P. e  F. D& b4 {
{' P% w- H) A8 J
   public static void main(String args[])
- @' ^% f" m$ O0 S    {4 v& t/ F: K( d! V
      float a,b;8 u3 Z& B& z8 m! }- y
      String calc;  x1 b) G6 ]8 ^3 h" h8 v+ W
      try{7 z/ j4 R7 A8 K3 Q
         if(args.length==3){1 B. U/ @% F! @- m1 n. ~
            a = Float.parseFloat(args[0]);
2 f6 Q( |5 U) b            b = Float.parseFloat(args[2]);
9 W' {% ~2 C) ]# x3 Q7 M            calc = args[1];
* X5 [& W  B% O. C, g! ~            if(calc.equals("+")){! q" ]+ l& d: g; V
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));7 q" h* }" u8 i. f  k: U: x2 a6 s
            }else if(calc.equals("-")){% n# S9 r9 y% J. a6 U
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));4 ~3 V- F& J; Y9 c1 D
            }else if(calc.equals("x")){$ _9 T4 F! J: N; R
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));! b* ~4 x8 x6 Z7 _0 ?
            }else if(calc.equals("/"))
0 M+ B' N6 u4 Q5 G            {& U/ f, G* E: X6 d4 G0 V! [
               if(b==0)# d; r" a) S8 B9 j, e
               {0 Y" R" T1 H* D4 k5 x/ V
                 System.out.println("除數不可為 0");
$ F% V& t, b9 ~; q7 S! n6 g               }else0 G$ A3 Y4 o% m8 N2 E& u1 u
               {
8 s. y: t+ ?+ s3 m- s) H  r) k' O                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));5 V7 K! I) [% q
               }
% j* Q/ E( z* \' E# o) s  g            }
4 h+ v! L' r. [2 h; I: g( y: v            else- T& \- i, P' M' {0 o
            {
: G; }- Z6 Z2 D# r# b5 j               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
: O! d7 ^% ^' s9 g2 A: t               System.exit(0);
+ ]( K# v9 s7 h% R; w- X& k            }
5 X2 L( K0 V; t. R% `         }else{/ i% {( ~+ k( z
            System.out.println("請使用三個引數,如下格式\n 1 + 2");0 Q. H5 n/ P. v- {1 v- n5 `
         }
9 ?# L$ K3 r; h3 p5 Q      }
% x. [! [% A4 o/ N& i      catch(ArrayIndexOutOfBoundsException e)
1 @0 c- V6 M' N0 M* _1 C7 J      {* E2 p! w3 S% Y! J7 _5 v
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());3 O% [$ F/ v3 ?5 _4 m9 ^
      }
: j' c  b6 v, m      catch(NumberFormatException e)9 v6 o& t: Y# h$ j
      {5 ~9 i$ v; }( R
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());% R/ \/ N4 h7 h/ O
      }
/ B8 I+ p3 U' E" i. D+ {% S1 N      5 v$ W: S8 u- |* U! D+ d: f. I  e
    }+ V0 V. l* H8 b' [3 V$ A, K
}

TOP

返回列表