返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯 , h" Q9 u, {! K
  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  "+":. X! c: _9 @. P8 r9 \
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:: Q# U- s" o7 @

7 d4 g! J2 M- k3 m3 ?public class TQC2060 r& x# `' i( l- A" G7 L
{
. P* }- @3 w  E, H$ c   public static void main(String args[])
* Z: P7 H' y# c% f0 o1 @6 n    {
% p; S7 F! w9 L4 o+ p/ k      float a,b;
$ c2 V5 J& _1 \) Z' @" G9 A      String calc;
  W" d5 F4 f: Q3 a( h5 {      try{
+ A9 a; t1 e. e4 S3 _  G         if(args.length==3){
: s/ ], g% T$ V5 u1 J4 p            a = Float.parseFloat(args[0]);' p$ _3 t: Z$ d# \0 g. Z* H3 P6 x
            b = Float.parseFloat(args[2]);% S, S3 \- z4 N5 L  e. x: }" y# w
            calc = args[1];
  l7 I0 B' E4 i9 t7 W            if(calc.equals("+")){
: o7 z. x$ B0 r4 |               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));- U" t. y, d: [+ J' ]4 F; [- p6 S
            }else if(calc.equals("-")){
+ N5 D& E: D6 e! S; A               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
  `& B" l9 f+ P5 G3 |/ w9 o            }else if(calc.equals("x")){
% |% d3 y+ p# [8 a               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
1 l) L9 T$ U: p' l2 J" A            }else if(calc.equals("/"))
2 P4 O5 o* O4 _6 n            {. [  P( S+ l2 B1 T
               if(b==0)
/ E4 f( N% G& L; q' F/ y+ W* T# n               {! _" S1 H; E# A! \
                 System.out.println("除數不可為 0");
0 Q- d. x. w, C6 L/ o  Y               }else
# G# P$ G. [' s' w+ G" K! t# Z+ v1 t               {
9 `* t1 ^' o! t& L: {0 a" N                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
0 B" n$ w2 m8 E1 N9 f, i7 ^               }+ {* ~' Z! S  R$ g
            }
2 o+ a1 C3 H2 p            else' M8 r% @8 i8 p" B' c- M
            {
9 j; F5 Y& N- G               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");( ^* d6 V; U/ @1 T7 j9 M4 g! O
               System.exit(0);
" t+ L* t# b2 P1 ^1 H6 n2 _) @  S4 N; L            }! H& N, F* B! P6 g, ~% W
         }else{0 J8 C% B* Z7 {# [9 ~- @% P& M
            System.out.println("請使用三個引數,如下格式\n 1 + 2");( i/ y1 _" e; t# _; o  }
         }
0 c  @: [% R8 ~4 b) w      }
2 N8 M7 ^5 H& S      catch(ArrayIndexOutOfBoundsException e)
# k. q3 b9 s( j      {
) v( ?3 n( a' o               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());" F& ]0 X0 I$ P( {  V
      }2 s- ~# J2 S" [" T
      catch(NumberFormatException e)
4 C( ]0 o4 G; d  N8 w' k      {! p. V9 ]( N0 z9 o' C4 }  J
         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());! N# Y) V2 A' l- q" [. _
      }
5 W: `7 g; q3 `3 ^& F3 [% U5 s( U      
: _+ F4 j1 d4 a3 @  T    }
, t1 R9 |$ P3 p6 ^" ~- C3 q* S- F1 D}

TOP

返回列表