返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
8 w- y1 x1 A% Z) m! P7 t- ?
  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; x4 u) k8 C' a+ `
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
7 L" |9 Q0 Q5 K# q. I
! R, ?  ?% i9 G) V/ u$ @public class TQC206' y- _# ^4 d1 {: O. c+ A
{; i' [4 R! Q9 _# M. e- k0 X
   public static void main(String args[])
  S# O# G0 m' o- _! B( X    {& R  T" _0 [( {" F  N
      float a,b;' x! f" B) V" }' r. g6 q, T
      String calc;
3 Z% B- r5 v+ T8 M# @+ q  R      try{
+ q( l2 Z% l5 Z* z0 c: }; n  {/ K         if(args.length==3){
; r' X: O- Z: t$ w7 r0 W6 P9 N/ g% k            a = Float.parseFloat(args[0]);% C! W7 N5 P; p2 I1 R! d, d
            b = Float.parseFloat(args[2]);
* z' B* L% P/ O3 M            calc = args[1];, i; L4 T% y8 B2 t! J
            if(calc.equals("+")){. |. b; i' r3 H' R- b4 ~
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));7 m3 o  G$ ]. x% [% \+ B3 L
            }else if(calc.equals("-")){( x- q: i7 K8 k5 ?
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));; Q0 y7 N( f& j
            }else if(calc.equals("x")){
& B6 {; O% }" Z               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
: d2 c8 S) h% h5 D; C8 M7 P            }else if(calc.equals("/"))
, U( [' o7 z/ F( G  d# ^) i9 e            {
8 C) w9 }/ e% d               if(b==0)& D& ]: N2 j0 h; f+ H) p# O" [
               {# x: P3 O  \, ]; O" a$ K
                 System.out.println("除數不可為 0");: ]- ^) f2 A( V1 I$ _, H3 h
               }else
, C1 c# p" H) \; e  p4 [               {
4 c7 C" n9 W  j                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
9 J6 R2 s( m9 e               }+ P  f- t+ s. o+ c' ]2 y) Y
            }0 e8 m! R, N" [; v, g  D' P' r& ~
            else4 ?. X  P$ T. _5 M& M$ t' O
            {
$ n, L  a4 |* d               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");$ ]2 `# a! v6 d0 g7 h1 C! i; x' h5 ^
               System.exit(0);
( M7 G* q' D( Q; D3 U3 t9 W3 h            }
7 w5 s9 r/ W) f         }else{" C( u+ n; D( V; S
            System.out.println("請使用三個引數,如下格式\n 1 + 2");& x* C. A  q- B% l
         }
* l4 I" y( O$ O0 \$ d      }
9 ~6 e5 z  |- Y7 n7 b$ ^' R1 b$ a      catch(ArrayIndexOutOfBoundsException e)
+ R: G5 Q# ~$ c; |( _" u# T      {( x" n( L: W3 ]2 _
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
5 R9 N8 |. P9 R( {9 O9 P      }* L6 Q* g$ q# y) n* ]4 s
      catch(NumberFormatException e)6 G* r# ?$ d( t3 y
      {
# X& v4 {. H! M7 c         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());) p$ k  |; P& f) ~0 p
      }* [( Z5 c  W  ~! G+ T
      
* u8 W( r# ^; N    }( N8 c4 ~0 I9 _" O
}

TOP

返回列表