返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
- Z! I- @9 ?0 l2 S
  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 [; a: }# ^" n+ f6 k; e
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
4 W! `; W" T% x: g# q
5 \$ F; Y4 q' J3 F8 Npublic class TQC206- _0 s4 E9 z. R! U- i+ [4 O2 q
{* Z* i+ t3 m/ T( J! r' E/ Q. d
   public static void main(String args[])
% k# m) H' o1 \% l0 M    {! U- a$ r0 m) C3 G- y) ~
      float a,b;' p6 x" C6 Q1 Z
      String calc;9 Q3 w& X8 Z3 k$ V
      try{
' V' X  F0 {6 _- h' ~         if(args.length==3){8 l, v' A) t0 ?) ]& {
            a = Float.parseFloat(args[0]);# X  l" A) W; W
            b = Float.parseFloat(args[2]);
4 x* a; L/ E! V, Z( g            calc = args[1];7 }9 g1 O, I; L4 J" G
            if(calc.equals("+")){. i* {- b; Y, l
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));. r6 o; S& Y9 h: N5 s# @' }; p
            }else if(calc.equals("-")){
$ H9 C( l: m+ ?$ k               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));  s6 p" f/ R6 Z* S4 i% q3 T
            }else if(calc.equals("x")){1 z  \7 B: W' ~$ T' X( c
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
* i/ K+ e2 ^1 `            }else if(calc.equals("/"))
+ w: I1 c- u- \; O6 ^  O% |            {
) v' y/ S- c4 k               if(b==0)8 B3 U4 H) Y- R6 s: @* {7 {4 h
               {! P0 ?: `3 y# O$ r2 i! R% e
                 System.out.println("除數不可為 0");
2 n& l, g  l  ?6 b  `+ z# f7 W$ X               }else
; n3 S$ n- ?  d* i. I               {
4 b7 N$ ]* H; X5 }                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
; ]- G. {, t3 k6 x, d2 p; s. t               }! N( m8 d* }+ s: Z$ C3 Z
            }4 X  @+ G& n# K' Z
            else7 J' G' U+ X6 c  d0 E4 x
            {2 x' e; ^) n* L/ m
               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");- ?, ]$ l$ f9 w4 _" ~/ K
               System.exit(0);
3 V8 _. \4 @6 Q- }( v! R8 t1 f* L            }
$ V$ b( x, L' p" O1 W1 f! F+ w& s) l         }else{
/ d8 u9 w) ]7 I) P            System.out.println("請使用三個引數,如下格式\n 1 + 2");$ C  D$ b2 a" J" [2 X- Q
         }. d- z) R- w$ i0 ~6 |
      }! _2 O; M' [" W% r' ]
      catch(ArrayIndexOutOfBoundsException e)
' Z( B  P8 w7 d1 c      {4 _+ a7 H' q- K0 f
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());+ @3 u* Y) u7 K) i5 ]& S
      }! j/ C) y+ W" ?$ |
      catch(NumberFormatException e)
) X1 E' {( i9 I, P1 z; e/ \2 [      {8 M, M# P8 h# ^; V; `
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
" ]4 Y4 m8 L4 E' r6 x6 U* l! I/ H      }
# R* n) {! G0 T+ ^      
: G( l6 k/ d. O6 q9 ]% x    }
5 j' K4 \6 q" l' s. J}

TOP

返回列表