計程作業第一題
Exercise R5.1
第一題
修改後:
if(quarters>0) System.out.println(quarters +" quarters");
這題首先把then去掉,不合文法,
再來if的判斷式必須用()刮起來。
第二題
修改後:
if( (1+x) > Math…..)
這題的問題在於,原意應該是要將1+X和後者相比較,
應該將(1+X)以刮號處理才不會有問題。
第三題
修改後:
if(x = = 1)…
想表示equals應該用「==」,「=」的意思是把後面的數指定給前面的。
第四題
修改後:
if( x = =0 && y = = 0 )….
這在課本中有說,這是常犯的錯誤。
原本的寫法,他會先處理「==」的部分,
接著所得結果(true of false)就跑去跟X做「&&」了。
根本不是原本想要的。
第五題
修改後:
if(1<=x && x<=10)….
要把兩個「<=」分開判斷,因為一次只能處理一個。
第六題
修改後:
if(s!="a" && s!="b" && s!="c" && s!="d")
這題應該把所有的「||」改成「&&」,才符合邏輯。
照原本的寫法,四個小判斷式中,必然至少有三個滿足(!=),
最後大判斷式就必然成立,這並非題目的原意。
print和println應該沒有修正的必要。
第七題
修改後:
if(input.equalsIgnoreCase("N") || input.equalsIgnoreCase("NO"))
這題也是commom error,兩個判斷式都要把敘述寫完整才行。
至於RETURN一開始還以為要補上去,
後來覺得應該是當成BREAK的效果在用(查課本)。
第八題
修改後:
if(input != null)…
x是integer不可能是null,
題目的原意應該是要判斷input這個字串物件是否為null。
此外,這題課本的題目怪怪的,應該是多印了一個標記。
int x = …
if(x!=null)…
上述兩行應該是同一題的題目。
第九題
修改後:
language = "English";
if(countary.equals("US"))
{ if(state.equals("PR")) language = "Spanish"; }
else if(countary.equals("China"))
language = "Chinese";
我把PR那一行前後用{}刮起來。
這題修改方式應該不只一種,而且還要看自己如何解讀這個題目。
我預設為英文,
我把「PR」視為美國的一個州,在美國又在這個州的,
就改為西班牙文。
若不在美國,(就不必看是否在此州,)再看是否在中國,
在中國則改為中文。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.7.59