標題:
為什麼錯,請老師解答!
[打印本頁]
作者:
lon
時間:
2012-8-18 09:32
標題:
為什麼錯,請老師解答!
本帖最後由 lon 於 2012-8-18 09:46 編輯
2 ~4 o* g2 v* u8 p' E" |( B
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 "+":
& M+ u7 G2 }" b* V6 l r
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
3 f3 O- g6 W+ A
& v' }8 Z2 J* B# X$ p& j
public class TQC206
# `2 E- P2 I6 z2 T+ D' P% |
{
d) |0 o6 ~* ^/ @$ \9 m, x' d
public static void main(String args[])
0 u. [0 R6 _' t9 |7 a2 W4 F& }
{
. c: S- z) u" U4 e+ V- D, _
float a,b;
6 ^* Y/ K- n% [' R$ G% f) _$ O5 J" U
String calc;
$ x" O) c/ n" S. q. _
try{
- V2 j* F7 N" }% J4 [
if(args.length==3){
/ D! a- O0 O* v9 v" u
a = Float.parseFloat(args[0]);
' f" S- {) ` t5 o2 t( e
b = Float.parseFloat(args[2]);
5 x! N' F$ q! @' { X' X
calc = args[1];
% }, k# X9 ]: U b' R
if(calc.equals("+")){
# y4 g) x1 ?2 |# i0 _4 F
System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
9 a- v( L- D+ N& A. |
}else if(calc.equals("-")){
1 m9 c4 ]" B }$ z
System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
! K7 w' T: {6 B1 w$ k4 t) w
}else if(calc.equals("x")){
8 u, N: Y! c! Q R0 f6 ]- X
System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
/ x7 j, g/ C# U, y8 o
}else if(calc.equals("/"))
3 M! K* f1 }& K$ e( Y
{
( J- I3 T% F. Z
if(b==0)
; O# u3 Z7 E B: b+ ]
{
5 K2 E: M9 \1 c. O7 g: y2 n
System.out.println("除數不可為 0");
4 l! E% B7 s. Y: { i4 \. n5 ~
}else
D& N% ] \! a+ u. r5 g' I
{
. N- ?8 B j6 a- S6 R
System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
$ I5 Z+ K5 n' _
}
* ]" x; w' z/ K9 t( q
}
' n; S; {. c, D' a9 h' @" E" u
else
2 W* Y M9 V0 I1 u" E; f, m' @
{
. B F) w3 Q* g' l2 e! K
System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
: _0 d% J Y6 S4 A
System.exit(0);
# F8 q* P6 s$ c* C5 b
}
: f( d+ z; I" [, t- B
}else{
) o1 o) b5 t @/ R0 c" l
System.out.println("請使用三個引數,如下格式\n 1 + 2");
. G( e, x0 D6 W( h: Q
}
7 U$ u% M$ v& l1 G$ K8 ~% h6 D- O
}
4 M, \7 G! b+ x7 d- B7 {
catch(ArrayIndexOutOfBoundsException e)
( }2 R; \( j6 _: X
{
4 ~6 a: w% C6 R, o9 r* j3 f
System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
; e" z" _* `/ H1 n: K
}
: G; T4 \/ a8 Q" O
catch(NumberFormatException e)
) ?1 x, f& {$ T4 o6 I
{
+ i. k9 t9 |; q3 s
System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
, k1 e6 H% }& N" {0 q
}
( v7 L* g" h% J
7 j# b' A& t* B$ K
}
. a* ~8 U2 y. n# k
}
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/)
Powered by Discuz! 7.2