More Related Content
Similar to Code style 2014-07-18-pub (20)
Code style 2014-07-18-pub
- 9. 2.1格式—括号
1、可选大括号也加上
if, else, for, do, while语句一起使用,即使只有一条语句(或是空),也应该把
大括号写上
2、Kernighan和Ritchie风格
左大括号前不换行
左大括号后换行
右大括号前换行
if (condition()) {
try {
something();
} catch (ProblemException e) {
recover();
}
}
- 31. 二、函数
17、防卫式校验
18、慎用可变参数
public Period(Date start, Date end) {
if (start.compareTo(end) > 0)
throw new IllegalArgumentException(
start + " after " + end);
this.start = start;
this.end = end;
}
#wrong
System.out.println(Arrays.asList(myArray));
#right
System.out.println(Arrays.toString(myArray));
- 32. 二、函数
19、for优先于while
Iterator<Element> i = c.iterator();
while(i.hasNext()){
doSomething(i.next());
}
for(Iterator<Element> i =c.iterator();i.hasNext();){
doSomething(i.next());
}
IteratorElement i2 = c2.iterator();
//BUG,拷贝出错了
while(i.hasNext()){
doSomething(i.next());
}
//compile error
for(IteratorElement i2 =c2.iterator();i.hasNext();){
doSomething(i.next());
- 33. 二、函数
20、for-each优先于for
public class NestedIteration {
public static void main(String[] args) {
CollectionSuit suits = Arrays.asList(Suit.values());
CollectionRank ranks = Arrays.asList(Rank.values());
ListCard deck = new ArrayListCard();
//BUG,NoSuchElementException
for (IteratorSuit i = suits.iterator(); i.hasNext(); )
for (IteratorRank j = ranks.iterator(); j.hasNext(); )
deck.add(new Card(i.next(), j.next()));
// Preferred idiom for nested iteration on collections and arrays
// for (Suit suit : suits)
// for (Rank rank : ranks)
// deck.add(new Card(suit, rank));
}
}
- 36. 二、函数
23、用布尔变量对程序加以文档说明
目的不明确的布尔判断 VS 目的明确的布尔判断
if( (elementIndex 0) || (MAX_ELEMENTS elementIndex) ||
(elementInddex == lastElementIndex) ){
}
finished = (elementIndex 0) || (MAX_ELEMENTS elementIndex) ;
repeatedEntry = elementInddex == lastElementIndex ;
If (finished || repeatedEntry){
}