返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯 + v$ ]; D2 M# |# I2 A6 f) a  b
  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  "+":
+ J$ |$ y7 F  C& g+ h7 U7 `因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:, h& p2 U: |: B. h5 R/ g
* b) F4 D5 p6 g4 d' ]4 j. _5 u! `% L
public class TQC206
* x# S! W5 W# C+ f{
! l& p* }, p7 V   public static void main(String args[])- u% _$ S( W! n: @2 v% A! ?; K. n% p
    {0 C; x6 Y. s. y4 p
      float a,b;- Q! d: p/ s2 |
      String calc;
$ d* M: ?/ I% U7 f3 s# L6 s- \      try{
$ {( H9 b% R/ _         if(args.length==3){7 R6 }+ o* \- e9 X, ]
            a = Float.parseFloat(args[0]);9 H. D( t& a! g+ R$ ~- _
            b = Float.parseFloat(args[2]);
2 l- o4 }2 n0 T( B            calc = args[1];
, @3 F9 J. e# D4 e            if(calc.equals("+")){/ Q& @0 O3 I6 ?
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));$ K9 ]& V9 r' ~- [( [4 i% G2 n
            }else if(calc.equals("-")){# x2 m0 O/ M* {( Q& x% ?
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
" ?! x: {4 }) r2 n1 I            }else if(calc.equals("x")){6 E4 y- j4 Y( I/ C3 K' C
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
5 j: B! J6 N( F            }else if(calc.equals("/"))& a. \- n$ A) V
            {9 P! a$ u- ]3 V; J  G2 v
               if(b==0)1 l9 Z: ]7 C! Q5 h! E
               {
2 J4 T0 k6 U# j3 V; o/ C# b                 System.out.println("除數不可為 0");
+ d% g* {, _% W               }else; u0 i, X' U2 F! N) e/ E
               {
  l3 z: a0 X" Q                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));  M$ {3 S: M4 A; D3 X5 ]
               }
+ {( I1 b+ a4 M  s            }( M/ s5 t4 B& g, d& E$ e1 G) @# b
            else
6 r% @/ l1 }( L) u& `7 n0 i9 V: N            {; b& W& G1 x( X
               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
# R$ ]; V! T% w4 l. G5 Z               System.exit(0);
  G6 c/ H7 [9 H9 c            }3 Y3 V( r3 }( w2 ~- c+ Q3 o2 i
         }else{
. K( _1 p1 m/ \. {            System.out.println("請使用三個引數,如下格式\n 1 + 2");
! ?/ h! O1 X1 B5 }         }0 D. A# t: F- [4 ^' A
      }
$ z. J9 h$ z  @5 O, W, N      catch(ArrayIndexOutOfBoundsException e)
& V0 D" `) q# u      {
. h/ Z; q5 E' x1 f) X               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());: j* G* I( F6 m
      }
- a+ s% M% y; A* c      catch(NumberFormatException e); Q9 e; e$ b3 h4 N  ~' a
      {
; P5 ^( G7 W& u7 Z  [7 ]7 T         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
  t" c+ _) Q- R3 \  p  b      }) D4 N' M. g( a  B" X8 J
      3 f/ G4 g. P1 u3 N: B/ J8 b
    }
. F3 H' T% C0 b/ M}

TOP

返回列表