返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
; W2 l1 w" Z9 ^4 r
  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  "+":
8 x& k/ @1 u" a) Q( o因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
) y, H$ P; F. E! I+ H9 L
' F/ N5 m" X+ V. `2 Qpublic class TQC206. U/ S0 S" y3 `
{
2 q4 @# A, n8 F# Y2 R$ b! D   public static void main(String args[])7 g" @+ [4 X7 n; c
    {
7 k) M& M8 r( Z* x      float a,b;1 c, v/ f6 m% v# |
      String calc;: w4 \# o! E9 ^+ @; x. A$ Q8 h
      try{7 j8 g$ Y) r) x2 @$ x
         if(args.length==3){
0 D8 F1 j. f( {            a = Float.parseFloat(args[0]);
/ i% w$ A. |1 [! _% |6 M" ]            b = Float.parseFloat(args[2]);7 O* M% [# b5 ?  P6 g
            calc = args[1];8 F; a' [; K! g
            if(calc.equals("+")){  q# `2 h7 @& }/ J- Y3 @
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));7 n: P" H( e4 R  E4 P
            }else if(calc.equals("-")){( U- ^1 y2 k0 j
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));( I7 |: i) G, w" Y; ]- e7 F4 s# Z
            }else if(calc.equals("x")){( @/ O# V' ^4 S. M; B# a7 v+ \
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
+ h$ B4 k: K" V9 f7 Y8 t  W            }else if(calc.equals("/"))* U( g- M% W# f; C* G$ j
            {
; R$ g' ~' T; j. s. W/ N& S0 S               if(b==0)" Q. S% o  l0 Q# G" g' C  J
               {
# V; D  o0 z" P$ s. J( G6 E) b                 System.out.println("除數不可為 0");3 C5 b: B' D+ L6 S( R: V  p
               }else
/ M8 ?# _" w( n: Z- @. I; z               {* Z( |$ H" v- v' m2 ~
                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
) `1 S' a9 M( g9 N               }/ [3 h$ v" s! a! d  H3 O
            }  G& \& `( t1 q; Z3 M- M6 f
            else) y( Q" L: f& T5 A; E( E+ z( H
            {
" @8 L/ g) W7 ^9 t6 x               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");5 F4 U# e& \9 ^0 Q" H+ f/ L
               System.exit(0);6 r7 X* [+ A3 ^) |
            }& }# a- I5 S+ B5 g9 ]) \  }6 m
         }else{
, [: d7 ~0 j; q2 }6 f7 X            System.out.println("請使用三個引數,如下格式\n 1 + 2");
7 H' t  W% H, l' ~; O/ S         }8 x  R8 Z7 k, Y3 }0 o# c: X: T
      }
' C1 X( R2 E; d1 j, h0 o; t      catch(ArrayIndexOutOfBoundsException e)
6 I. u) Q' C) q6 j9 T. f" h      {8 G+ D5 G' r' ~* o, W) E
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());9 [( l" Y5 a& W$ G- [5 x8 B, F5 g
      }8 s! \8 L$ r( G! L* k
      catch(NumberFormatException e); R; S6 |. C' L# L  V4 M+ ?  `
      {
1 _$ z3 e: H5 [+ u( X         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
' X' d3 k; h. |& y- E  {      }: d) m  y6 L) r
      
. _! l' \( s( J! \( z  P  f    }& l1 o! V. \' e% F; C. q3 r3 {  A
}

TOP

返回列表