標題:
為什麼錯,請老師解答!
[打印本頁]
作者:
lon
時間:
2012-8-18 09:32
標題:
為什麼錯,請老師解答!
本帖最後由 lon 於 2012-8-18 09:46 編輯
" B9 L" P$ {( A- p
public class jva206 {
public static void main(String[] args) {
try{
if(args.length==3){
float a=Float.parseFloat(args[0]);
float b=Float.parseFloat(args[2]);
switch(args[1]){
case"+":
System.out.println(a+"+"+b+"="+(a+b));
break;
case"-":
System.out.println(a+"-"+b+"="+(a-b));
break;
case"x":
System.out.println(a+"*"+b+"="+(a*b));
break;
case"/":
if(b==0){
System.out.println("除數不可為0");
System.exit(0);
}
System.out.println(a+"/"+b+"="+(a/b));
break;
default:
System.out.println("引數格式不對,請使用如下格式\n Calc 1 + 2");
break;
}
}else{
System.out.println("引數格式不對,請使用如下格式\n Calc 1 + 2");
System.exit(0);
}
}catch(Exception e){
System.out.println("引數格式不對,請使用如下格式\n Calc 1 + 2");
System.exit(0);
}
}
}
複製代碼
作者:
ray
時間:
2012-9-1 22:34
switch裡面要用字串的話,JDK必須要使用1.7以上,還有case後面不該緊接著判斷字串,應該要加一個空白,例如:case "+":
. v9 R" V0 i( f' u( O2 g/ z
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
/ g5 l* O B" s5 y1 D+ L( e
$ B+ a0 Y; I* O" Q$ q: V
public class TQC206
U7 }( {0 A! J& f7 C T; h' D9 n
{
; G. b6 Z$ [2 z4 a$ r% C. B5 h
public static void main(String args[])
8 N1 {. K- N5 j% {; H
{
; q7 t- Y( P, S! m
float a,b;
, K( D, [& q, f" E% i& ^! Q5 P, L
String calc;
1 }5 e( H: i' q* R
try{
, J0 ]& ^1 U6 {( [2 Q! r0 o
if(args.length==3){
2 C. o. p/ `3 P
a = Float.parseFloat(args[0]);
' K/ \* j+ f; d8 ` B5 z& w
b = Float.parseFloat(args[2]);
7 o# s) i+ N) o# W3 N
calc = args[1];
/ q- |' p* ^: v! y8 X( _8 F" I
if(calc.equals("+")){
8 B* a8 E# @4 I( p7 D/ P, g* h9 q
System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
8 n$ z& w7 |- r/ N0 @, y V
}else if(calc.equals("-")){
" j, R" Q! L) g! V. s/ a3 Z4 j
System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
, I# o6 q9 ~- u1 D+ X3 V) N$ O6 r
}else if(calc.equals("x")){
- M. Y" _, {4 q0 t a# P. q5 V
System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
- C# |. i9 @4 ^* B
}else if(calc.equals("/"))
2 [, E* R1 B) X9 i! z2 ^
{
3 p0 |" m6 {2 ?& N& H
if(b==0)
0 y; Q% z5 N* `+ _6 Q# w
{
" v, ~3 d% }- q5 N
System.out.println("除數不可為 0");
- G' O2 [6 j5 m+ o
}else
2 q( C. n& n+ k5 J' X# S. z
{
, a i$ r0 B4 U) [4 T5 b
System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
& Z* h$ C' _* |3 F
}
& Q6 L4 b% g: a
}
7 w& k5 s# b2 w4 ~) `9 T" `2 M2 D
else
1 }* d, l- B; U% q9 |1 m2 n
{
( ?2 O% h% \; r( L8 l- C. u
System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
2 D* V. b" z8 G) X, g9 g8 O( W
System.exit(0);
; C+ `5 n. e' E2 Y' O
}
: G6 j+ s- | `9 _
}else{
9 i3 L: G& K5 L8 f, N
System.out.println("請使用三個引數,如下格式\n 1 + 2");
( u+ q% f7 x( U+ @. E
}
( X5 ?" ]* k }
}
% `# L1 Z( j! g7 s1 |" n
catch(ArrayIndexOutOfBoundsException e)
9 J2 e; _$ x( Y I* H; H
{
$ ?1 w3 r+ n) ?
System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
9 ]+ N+ b* [+ Z, x( c0 K4 l
}
: l# h, w( J; F" e: h( x B
catch(NumberFormatException e)
* A. X; P- g! O& J, U7 E1 e" L7 K
{
/ ]* Z6 q; M: L1 _+ x8 s t+ e
System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
( q0 O8 Y6 @% B0 Q5 \* i
}
% K7 p$ V2 s* c% H& @8 Z: L3 m
+ ?2 C# v6 F. T0 B
}
3 D4 ^2 P: A% @0 J
}
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/)
Powered by Discuz! 7.2