返回列表 發帖

為什麼錯,請老師解答!

本帖最後由 lon 於 2012-8-18 09:46 編輯
/ |/ h: `% Q) O" P5 R
  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  "+":; N" F8 l  ]: m5 ~
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
2 @' f4 N' L+ |1 |3 {& u1 e
; v. u2 a& I0 ^6 J6 u) B0 Ppublic class TQC2069 t5 v) ]% B8 \/ A
{+ H. k1 [6 u! C# X
   public static void main(String args[])
( r- Q; u9 A# D6 B) a    {
; v$ Y0 K9 l+ u      float a,b;
9 G+ v) R, \/ x/ p1 i      String calc;% I: V; R8 l6 ~% ~& _, w
      try{
; z6 N- k! ?/ Z$ ^         if(args.length==3){
2 j  f2 \' y; m( b            a = Float.parseFloat(args[0]);
4 q6 K3 o6 P& ~9 P9 o2 g            b = Float.parseFloat(args[2]);
% y# Y7 {1 C8 K            calc = args[1];/ S2 A1 z: o; {+ o
            if(calc.equals("+")){
( K5 c# @! r' ^0 H+ `3 E: n               System.out.println(args[0]+args[1]+args[2]+"="+(a+b));: f$ k8 P- l. O- ^9 H( T. e
            }else if(calc.equals("-")){
6 q0 |6 T( _% B6 D               System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
" q3 L. l  W' V. f) ~4 F            }else if(calc.equals("x")){
( B; u! I: r" ^  ~+ H2 U               System.out.println(args[0]+args[1]+args[2]+"="+(a*b));# n  X+ E: L7 j9 d
            }else if(calc.equals("/"))
) W6 y  V8 g( g+ {; D            {
& @% W7 L+ u7 H8 i' b. f% I               if(b==0)
! g7 K. R8 C  D+ Y* Q               {% X0 S" I4 H  w: \$ O, }
                 System.out.println("除數不可為 0");# A+ q4 s/ k/ ]9 h. E" G$ W+ }( h
               }else
9 P9 |* x4 n* J               {+ j( e( N: O- A/ {
                  System.out.println(args[0]+args[1]+args[2]+"="+(a/b));7 i  y& F$ S$ u4 M! D& a+ S! {' m
               }
) R) v0 Z1 ~# V8 G3 y+ N  N5 ]            }  f9 i; W( X8 Q1 A" r
            else
. \" ^- A* O5 n2 P* _            {
. l: n1 _8 F& z! a  ]               System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");+ R: n5 u6 A0 r( D# R
               System.exit(0);
3 y, c6 x3 E! f1 A            }
, y  Q% {  i" {1 T& x6 Q         }else{0 T3 j+ `/ C4 e, D- Y# u
            System.out.println("請使用三個引數,如下格式\n 1 + 2");: {, ]/ z  [) _3 z; |
         }
$ ]* C, o7 o3 t4 y# q8 Z      }
: C, \6 N7 R* o      catch(ArrayIndexOutOfBoundsException e)
! g- R$ S0 H  q6 b1 v, d6 G      {
/ d1 a: d; X' o" C0 L               System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
* K, q7 m1 Q. f& y      }" Z/ I' V3 D2 J
      catch(NumberFormatException e)
, H  {/ D* I8 ^      {
6 i9 \; V7 O3 s- J( m- M+ Z         System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());% w0 N7 Y9 c4 b1 D4 a
      }  a! t! h) P' f1 c, `/ ^
        S- g- }/ O0 x' f% f$ u2 j
    }
! w2 F4 p$ _( H' \- A2 J}

TOP

返回列表