返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯 * w4 T3 v& v# u6 H1 i
  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  "+":
% K" C$ T, ^) ?因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
% n7 H( @8 \" q- Q: a% z
2 i/ X$ s7 d% S; p) g3 Opublic class TQC206! @: I8 U- N' |. x$ H6 \; g) v
{  s1 E. v! Y- }; k- ^. R! p
   public static void main(String args[])
0 A& f1 \3 f% d, h4 V! |    {+ Q* @5 e2 p0 l9 A. h8 E+ E
      float a,b;
8 V+ V' ^8 e2 q      String calc;
6 z: F; E% D4 s/ m% ?3 E; S1 f      try{
& S. ^9 q3 P3 j3 h& f         if(args.length==3){0 z3 p/ V' C5 g+ d
            a = Float.parseFloat(args[0]);) |  T4 m* K; p* m" `# E: A* {
            b = Float.parseFloat(args[2]);
" J7 t. F2 L1 z* q7 \% k- R8 }            calc = args[1];/ G" i$ P9 d# a9 B+ @! u7 _
            if(calc.equals("+")){
( I( r' C" |, t               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
6 f9 c3 s" m3 G  M* o            }else if(calc.equals("-")){
- N9 N' \  T8 b6 T/ a# [3 T               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
& h* k( n$ j4 _            }else if(calc.equals("x")){
) L) e! @; O- \9 J               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));. P5 D- C" \4 e0 {
            }else if(calc.equals("/"))
5 }0 Y* A8 }% U$ I1 H( m            {$ k: [) t$ K2 i- c% b( L( i" P
               if(b==0)
7 [2 Y) D. u) U# Q- W7 f               {
, p0 I4 ^. Z7 ]8 ^, S$ d7 c                 System.out.println("除數不可為 0");
. a# O* S) y" }9 g               }else
" h6 i  I* x9 Z6 ~$ P  G( P: d               {3 N* ?# I$ K0 S+ [
                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
% l0 S+ U  F# |! f$ X               }
8 W: q0 k. J: r3 ^9 V/ K            }
' o6 f. J8 ]% O$ x/ v2 E$ O            else$ ~; x( W3 a. M# i+ X8 I9 c' B  P) F
            {
! k, s( d% `/ S* l9 i               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
8 D% U! s3 q, k* o: c1 i               System.exit(0);
7 H' i6 i) O% O/ R( g7 W            }
. x9 d3 E+ `- z, h/ r, l2 t6 g! w         }else{
6 C8 N# T% z+ Y1 h            System.out.println("請使用三個引數,如下格式\n 1 + 2");
0 u( z3 q# k/ F6 |6 T, ]         }
: i( L) v8 ]6 w7 D2 u2 A6 u. B& }      }) W& O% D* j$ V0 x3 V* _
      catch(ArrayIndexOutOfBoundsException e)
+ N- c+ E- M0 Y. W8 L      {
4 `/ z7 R9 i1 V; O' B8 y, K( `               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
' \5 K0 G! r$ ~7 R  P* c      }
4 g8 i4 G% L' y# D$ E- ]      catch(NumberFormatException e)
" k+ B8 T( G' {      {
( ?. L% q2 D9 t& y         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());2 G0 G! R  F- |6 c, j; S: r/ K
      }3 z. v$ N& {5 K2 i5 l2 ^+ P
      
5 n8 y8 h4 g6 {7 ~: }' z$ G    }  d3 Q: H7 m. L. r8 l
}

TOP

返回列表