標題:
為什麼錯,請老師解答!
[打印本頁]
作者:
lon
時間:
2012-8-18 09:32
標題:
為什麼錯,請老師解答!
本帖最後由 lon 於 2012-8-18 09:46 編輯
* f+ x- D2 {- U: O3 ~
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 "+":
) ?$ N. ~6 w, g' K. T! f. U. S
因為你或許不能掌握考試時JDK的版本,switch-case那邊我建議你用if-else-if取代,程式範例如下:
& i' ~- W1 ]9 O
7 S* [& f+ t. ^& C2 m
public class TQC206
" P3 ^4 A1 w/ H/ ]- ?
{
* \# l5 q" L+ O/ w4 I4 h. k
public static void main(String args[])
0 v# g4 a. ~" \4 H
{
% K$ N& _- P. Z) \8 y: b' b5 a- Y* J
float a,b;
3 {8 p# a: n; X8 ?- ^
String calc;
9 N) Q- \ w1 \/ F2 }4 i
try{
' N, m$ s: Y5 B. ?
if(args.length==3){
. b# ?8 `- I a: O. @$ u- j/ {
a = Float.parseFloat(args[0]);
0 s" p4 [! {/ Z& J: ~, H
b = Float.parseFloat(args[2]);
( ^! _5 u& w1 M5 q
calc = args[1];
1 w( Y. r$ W) A# k
if(calc.equals("+")){
- m7 J- F/ ]: \; ^; W! p$ j% W9 m
System.out.println(args[0]+args[1]+args[2]+"="+(a+b));
6 X" s* j$ ^' a4 j) c
}else if(calc.equals("-")){
% b4 i5 W5 S( _! @
System.out.println(args[0]+args[1]+args[2]+"="+(a-b));
" f* \/ d% A; I
}else if(calc.equals("x")){
4 S) _) ^/ ~: E ]6 T# ?: k
System.out.println(args[0]+args[1]+args[2]+"="+(a*b));
# R3 c* w, T7 l+ P& u0 M
}else if(calc.equals("/"))
. M& m& r$ a. K+ T4 z
{
" Q) U. e8 {0 x" o! _7 f2 ^
if(b==0)
0 w6 d2 Z# Y: ~# _: X
{
' _% V3 W& h, d
System.out.println("除數不可為 0");
5 @6 d7 ~+ _ O: ?0 ~
}else
2 M+ G- T0 P l$ C ^ C- c* D- K
{
$ X. q- X/ a5 i) A: R- B- l
System.out.println(args[0]+args[1]+args[2]+"="+(a/b));
1 m2 Z5 B/ ]- p. h& D1 b) u! y
}
) m" K6 h" S1 q) @. c0 `
}
2 N- g1 ]$ s. P7 v6 a1 Y0 n8 h
else
7 q; D8 ?0 N# E$ N
{
& C! u1 ?9 V1 n: {
System.out.println("第二個引數請使用 + - x / 的其中一種運算符號");
+ p) W: M0 I# C# i! T. O: [6 J
System.exit(0);
' ?+ d4 z2 g# P, P! d+ m% K% l
}
" K6 k9 z1 q/ U6 ]3 h+ y
}else{
( L% X, i1 `+ m" P0 m
System.out.println("請使用三個引數,如下格式\n 1 + 2");
~: H+ p% z: X; H
}
H8 f- K# p) h, D
}
& J$ e0 {7 l+ G' w! H7 W* e
catch(ArrayIndexOutOfBoundsException e)
5 ? C E$ v7 O; I1 L
{
8 H# {1 K9 }/ ]* r" E# @
System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
$ o- }( R/ `# S Q
}
* ]9 m @/ e3 B' M
catch(NumberFormatException e)
( X5 q; y/ O- L7 y
{
2 y& E5 Q; A( r0 C: g
System.out.println("使用引數不對,請使用如下格式\n 1 + 2\n"+e.getMessage());
- r8 W1 r4 `0 r7 ~' @
}
( F& ^9 U p( M( A5 [1 V( E# c
' z# v1 v6 I- N C u8 `/ `
}
6 _ j3 ?1 S3 q$ N, P I: B4 y
}
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/)
Powered by Discuz! 7.2