標題:
為什麼錯,請老師解答!
[打印本頁]
作者:
lon
時間:
2012-8-18 09:32
標題:
為什麼錯,請老師解答!
本帖最後由 lon 於 2012-8-18 09:46 編輯
0 I4 j/ U8 N, n0 B c
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 "+":
& `1 V6 \9 ?% l+ y
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
7 }2 J% J& P3 {. v
9 N$ T: d8 \, N9 @/ u2 H7 N# r( `6 _
public class TQC206
/ u0 O0 m- s' S6 ]9 u) T
{
6 E2 A K/ F" Q1 Z0 T1 {$ s+ q) F" C
public static void main(String args[])
0 Y9 N h u. Z* A
{
+ X4 t$ t7 B! q) v9 f/ O$ w
float a,b;
1 k% P N& |/ T6 \3 u0 ^8 ?) [- U
String calc;
1 y! r; z" P' L. x$ z: {* V1 c
try{
* d: e! I9 Y0 U+ |/ m3 H
if(args.length==3){
. \& f; |+ W9 Y
a = Float.parseFloat(args[0]);
, b% j4 X7 N# s, N4 _% b
b = Float.parseFloat(args[2]);
; d% F1 l# }6 }8 q. Z7 J" `
calc = args[1];
( @( {# V/ A+ L! t. Z
if(calc.equals("+")){
6 s9 c6 _' e; }* ~0 g2 e
System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
, c! f3 m9 V* ]+ [3 W
}else if(calc.equals("-")){
* Y. @4 X( ~- Q* y7 M _
System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
2 D t9 L$ ]5 t' v* O# y! K* o; {
}else if(calc.equals("x")){
: k0 k' t7 ?# b
System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
8 M) m( K$ m1 O0 V f7 N1 l
}else if(calc.equals("/"))
$ L# q' ~ w2 @3 \
{
# S. w5 ]5 r5 X; a1 X: ~
if(b==0)
/ e* Q8 T4 q' |
{
; C# w% O& I. s; S$ D, w+ i
System.out.println("除數不可為 0");
! k+ E2 X7 { a" H0 i
}else
: F, s+ u( k* H8 m3 \2 k
{
+ h* |6 a) J7 M5 x7 m' |8 N
System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
0 G2 D7 c# s8 O; Y) V% ?/ d% O$ w
}
8 v- S" X5 i+ G z2 w
}
4 x9 P, }4 R8 ~' F3 n
else
- M! |% Z3 P+ m
{
4 g; N( W7 r9 Q; b3 c) n' I
System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
" x$ G+ H' A8 P3 ]+ v7 ~
System.exit(0);
8 {$ ^( L- B/ _- W: k ?
}
9 l& j! L" ]% I% J( K$ p
}else{
% [+ H1 q# e$ }, {6 B2 z* o; [3 Z
System.out.println("請使用三個引數,如下格式\n 1 + 2");
9 V6 I5 D" {6 _! G
}
! {# D3 n' V( t# m8 a
}
& S& E# ^7 Z; T( [: s( C
catch(ArrayIndexOutOfBoundsException e)
( _, t& _) P. C7 g$ m; h
{
, K9 Z7 E# O8 I4 A6 K, C. B
System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
4 o: e7 N- |0 R' Y
}
$ [& c8 z) q, Y, e/ [$ V5 w9 q
catch(NumberFormatException e)
! U! w- w2 Q+ M
{
9 h# p9 n3 f* M& o
System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
) W& X5 U3 s" T( \
}
0 `- a, _& x* \& K# X: g2 T. W
6 Y! O3 R3 E6 ?$ P$ u
}
# C7 I2 ?0 g& \8 C9 Y
}
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2