返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯 3 `9 h9 d  E+ S' y2 A0 j$ x
  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  "+":
5 b8 o( l( m, v5 X& |因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:" U1 Y4 I( e4 j  t
* ~8 ?: N9 D9 N
public class TQC206  [! B. v. x' g1 C
{. m# f- _+ [( D8 V! b, Q
   public static void main(String args[])% L# A: [6 U: f, U/ C- R
    {
/ J0 F& A$ W" t5 a1 \* F0 |      float a,b;( v! f5 `+ V! O7 m4 G. @
      String calc;& i. |% f% \6 X. q* U
      try{
( S3 |, F. N5 _. ]& I         if(args.length==3){
3 ~" j2 C1 \. b  s! \- z7 H            a = Float.parseFloat(args[0]);
* G7 u* ^; k$ B/ h            b = Float.parseFloat(args[2]);
# ?# U6 n, k  o& H. j7 W            calc = args[1];8 i6 w! n# i! m9 Y2 R
            if(calc.equals("+")){
& E( K6 T  O0 B6 ]0 ]               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));, y- ?' {6 {. |2 C
            }else if(calc.equals("-")){* R  f- m3 \8 U& ]
               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));. B2 ^2 k* \3 f
            }else if(calc.equals("x")){9 ^) F4 A- N, q* q. g# x$ Z5 Q
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
; K) }  V2 I0 v: q            }else if(calc.equals("/"))- C  `, `: d. t5 m
            {
& L. ~: H: T4 r               if(b==0)
7 K9 h$ `4 }# q$ T               {0 [. L; ?7 C0 V# }0 \* z
                 System.out.println("除數不可為 0");
3 t" Z  f2 l& x$ a6 h, l4 m               }else
7 F, V1 I" d3 ~1 ^, }               {
! D  v, W0 H! h% {                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
" M! i& D  h3 ~5 f9 L0 l" j4 p- T. }: }, ^               }
  _0 F8 G3 [6 J1 J0 T            }
3 _& B% ~2 }, y            else+ }( ?" X4 v4 `0 X1 b& p; g, j+ }
            {" c: p1 f/ Q1 l" W) V
               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
& o# T7 {- f3 P- C% O               System.exit(0);
, U! v$ B  _: `! }            }* b) n( Q6 w/ E" J- ?
         }else{
1 l! q" Q% {2 u$ y* Y' f            System.out.println("請使用三個引數,如下格式\n 1 + 2");0 Q. ~# @6 y9 F+ s$ Y
         }
6 v" @* H; ]5 M% p      }
  t& i8 Z3 ?% f0 Q      catch(ArrayIndexOutOfBoundsException e)
$ z2 R0 g$ j) _3 o/ i1 r. C      {: [, ]; v0 ?% s
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
/ A5 b* {, l, p& a6 d/ J$ g      }4 `. p: i$ c) X0 Y5 e
      catch(NumberFormatException e)! f9 |. ~$ m* K5 K' a
      {
5 m1 H0 w: w# ], Q" I8 V* ^9 N         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());6 j$ x% g6 k. X1 V- |4 P
      }* ^( t  X2 y, \- j+ |
      
" {% l: r  w- z    }
# q9 ]. S. E% [' s" I. U}

TOP

返回列表