返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯 9 f' i, Q( ^. t# W" 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  "+":
" k& e+ `3 j" l; W因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:; B& f3 |) z; ]5 E
  D+ A; Q! e" Z3 ~
public class TQC206
! }7 h, O5 P( l) x{
! ^  h0 U2 x5 K   public static void main(String args[])) l1 e7 P1 |6 }2 g& w
    {# j* T# x6 B; \
      float a,b;
& G0 n& e  M2 }7 [& v/ V9 V/ w      String calc;+ V* ^) q% E7 ?9 e
      try{
7 [2 O4 Z" Z% g( W6 C/ o         if(args.length==3){
9 Y4 v5 H" S' }, D            a = Float.parseFloat(args[0]);
7 E$ K' M" p) z3 ^            b = Float.parseFloat(args[2]);1 T' o, f) L/ R4 R' R
            calc = args[1];* v: A2 ~3 B; u; H
            if(calc.equals("+")){: A! q) P- L7 e+ @
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
, f5 c# f  W& I5 C9 R# `2 J3 {: E            }else if(calc.equals("-")){2 M3 V- e& |4 I- S; j) L3 x, p
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));( L) k' j6 ^1 O$ U& @  H
            }else if(calc.equals("x")){
: x) Z2 ^) k% Y" D               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
0 m/ G" n" X: `  w& P            }else if(calc.equals("/"))
$ }8 F- _! @7 V0 C% m2 M            {3 u/ S$ r  J4 I( G6 v
               if(b==0)
  Y. D. z- ]! t               {
4 Q1 m8 {6 F; j* A7 I& h' ^                 System.out.println("除數不可為 0");
- ]: N3 G0 j  m) X/ J  q4 y% J$ m               }else
! P; j' l+ r8 c4 i0 b: m, w5 U               {
. S# E% v8 Q  O9 @2 i                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
3 |5 _! Y# K$ n' T               }. q" K4 R. A5 }! g7 a; m
            }
3 ^7 D( I- H) i5 n: j. }% L            else/ I( O% _- f: g4 }; X# w/ ~
            {% }. |* D8 W8 Z, o3 j: g3 R
               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
/ y0 y; N2 }( d# N! D$ P0 `) y               System.exit(0);5 D3 {( g5 J. I! R
            }
* ~7 d$ o# c! q0 w6 E         }else{
4 W+ t  I) K( a9 v" d6 m            System.out.println("請使用三個引數,如下格式\n 1 + 2");4 @) |8 F  @9 P  |) u. e2 _% R
         }: `' a6 V5 f7 y6 k
      }
; a" f- A6 m* M0 d      catch(ArrayIndexOutOfBoundsException e)
$ ?0 i, g8 w: @4 H- R6 d      {
) g. \- A, h+ ^$ [& J               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
  R9 A$ T; k$ k+ i: i+ d, n      }9 d0 W& ~0 |0 t* C) G
      catch(NumberFormatException e)1 }1 x4 \* A8 P; [) ^" t
      {. {! w# W5 m, l! O& v& H4 D! I
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
- L& S/ D/ d% @7 ^6 ?& i+ X      }
' f' t9 _- ^: T/ T6 |( l' {      
5 W% E2 i- z4 o, A% D    }
8 Y' U1 L& x% C( r, I0 U$ S: [}

TOP

返回列表