返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
0 Y% B" e( N9 I$ H
  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  "+":( h7 E% [8 i* L3 b4 l
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:# `& ?- z  x1 c* I  z: h

& H5 P1 |! h4 i5 w! ?  i0 kpublic class TQC206
0 X0 ?4 Y8 A2 X9 {{
: [0 q% n) ~* g* ]! w* Y( m   public static void main(String args[]); G6 s" |1 ~) }1 m" m& I* {: ~
    {3 R  m& N  A, w% V; Q
      float a,b;
) ^0 t! `! C0 I) z: I6 r: c5 W      String calc;
6 D, t; i' W: N$ c2 Q# S2 l% V      try{& Y' k% q: h1 `+ N: W
         if(args.length==3){! U) i5 V0 q! V5 F/ c* U6 ], Q/ w6 P$ z
            a = Float.parseFloat(args[0]);) s0 Q5 [1 a: h% U5 [9 o+ B) [" E! s
            b = Float.parseFloat(args[2]);) L9 V( y: w; I* i2 A
            calc = args[1];
7 y8 X) k! J3 K2 z6 f            if(calc.equals("+")){
9 f. |$ b) r& [# s. Z) h- [               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
0 P( W+ F% l, L. N            }else if(calc.equals("-")){
+ S# T, f. f6 T7 u               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));6 z; C. h, ]0 j6 H) b
            }else if(calc.equals("x")){2 W/ u# z' E2 E; |3 a0 L3 f6 U
               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
" L- E* M. j7 a% M, Y4 k            }else if(calc.equals("/"))
2 _$ L4 l( N: q6 h$ {. t2 L            {% h+ o) B( \! f9 ?/ G7 Z) \
               if(b==0)
" b" f, `. Q0 C( Z: ?1 r               {3 d" u! u# J! K
                 System.out.println("除數不可為 0");
- z$ `) |# m$ @; M: @               }else
* |, h# h( S) z2 L               {$ s% s* r' s; W0 f5 [
                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));+ |! n% q/ U" \0 B
               }; \* H4 M! k# i* m( z2 R  c- y0 q
            }
6 }5 P! C1 `0 u, c            else
1 E: z% O) ?" Q. Y            {
6 Z5 h9 s; J  l6 |% a               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");& v' C) N4 X& a" G& d4 B; m
               System.exit(0);! i/ O% H1 j- H% ~! O( q$ R2 [5 C
            }
1 f9 F) T5 }; E6 M3 h5 b# q/ f         }else{
% {( S3 C1 n. ^& v9 H) Z" z; {9 ]" C            System.out.println("請使用三個引數,如下格式\n 1 + 2");  \" a7 r; V0 \! d& L
         }, |) }8 C( ?+ ?: H* Q
      }$ H* H, w& B, J7 K2 u
      catch(ArrayIndexOutOfBoundsException e)
" @  m+ u4 V7 {0 V      {$ v2 N3 p2 J" w' t" I* ?5 r
               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());* k; g$ T6 n9 Y/ v- z; t
      }
3 N$ o( {7 g* K4 G# o      catch(NumberFormatException e)
  Y+ U* Y: L# ?; N      {
# C$ e. B1 p4 C/ e' h; u  S4 K" ^         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
6 G1 z# Q* e% M) b! K      }
( l6 T* {( j- P( W      
* N1 `; J1 a" q' q& q: p    }
6 h" O% y, V$ X# P/ L5 x) z}

TOP

返回列表