返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
9 m3 ]; M+ D) _3 W
  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  "+":
1 S3 t8 h' `1 n9 h! ]  @因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:. e/ [& r/ P/ ?; Q2 N% f

- v( v: a4 j, F7 M' t) r3 C9 t# Opublic class TQC206
( b& b$ U9 w/ o, ~) o6 m, l{
/ U7 ]; ~" X8 F   public static void main(String args[]); s% \( |* h$ T) M; ~
    {+ Z, U$ a3 P% g+ k
      float a,b;
9 g6 s, V; m; e' r. ~. t; R' o      String calc;$ h: h2 X6 }! {5 e, Q( k- |
      try{
3 ~2 D& N) D- C4 D5 T# l         if(args.length==3){2 h' t! n1 x/ @8 {2 b( [
            a = Float.parseFloat(args[0]);" W9 x% r7 U- d0 D+ Z: q
            b = Float.parseFloat(args[2]);
6 d. [2 S4 F" w  W! d3 p+ S            calc = args[1];
9 G" u* h9 L( s/ l& G$ X/ N            if(calc.equals("+")){9 x. L9 T# n4 E5 t4 u  D
               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
+ t* @, l$ H/ @! r7 O- D+ S5 {            }else if(calc.equals("-")){
# E* n/ w8 p4 P( T               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));, P; j) {' I' ^% h% ]
            }else if(calc.equals("x")){
; F# |* w2 n( g$ e5 W               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));; f5 M0 m- ]; z: T. n0 l
            }else if(calc.equals("/"))5 G1 N6 E$ _5 L0 o- }# k) ~4 I! u
            {
% a) g$ B& i9 o               if(b==0)
$ D8 H2 i( t* L5 U5 K" f               {
0 d( U  H0 d7 i& x8 k2 P                 System.out.println("除數不可為 0");; M0 G& Z& F1 c& H
               }else2 M$ s4 Z* r2 B  P$ I' ~
               {4 t2 ]3 E" l; D
                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
1 z/ \8 k0 T: Q               }
+ R8 W6 Y; X& p0 k            }
( B. T9 o/ h: H( G8 c& \            else
; S8 M* ~# C7 l: c            {* Y7 H! h% ~) n4 t$ ]9 \& x9 t
               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");1 R. C  l/ @6 J. c$ V
               System.exit(0);5 i. |" r8 Q' J  `9 g+ p" r
            }3 W+ u3 e! F* [
         }else{: P6 d6 g. W) K) |2 I! z. ?
            System.out.println("請使用三個引數,如下格式\n 1 + 2");
& \6 m5 y. {1 x9 ?3 M: |# m         }/ A3 z. B' v* L/ M7 {
      }
" {/ l5 f1 ^; x- T      catch(ArrayIndexOutOfBoundsException e)
% j% u* a$ L/ n0 H9 }      {- `% U3 O4 ~. V1 o: o# E( A5 _
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
8 [% p8 d( W5 G; l      }1 T: y9 A% S2 J! {
      catch(NumberFormatException e): Z7 @. h; B- E+ T; o2 E( l# R, t
      {
1 n, c- a1 j) t8 t         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());, v# g$ j+ k6 I, ^( H  Z4 p
      }2 X4 I: t3 _8 p1 q
      * a( v! J$ M: a. g' G: H: Z
    }
/ H0 z4 L* F  J, _, {}

TOP

返回列表