請問這段代碼為什么會這樣輸出?
public class PaiTest {
?
?private List<Card> cardList;
?
?public PaiTest(){
??
??this.cardList = new ArrayList<Card>();
?}
?public void purcard(){
??
??String[] sh= {"方片","黑桃","紅桃","梅花"};
??for(int i=0;i<4;i++){
???Card cars = new Card();
???cars.setShape(sh[i]);
??
??for( int j=2;j<13;j++){
???System.out.println("j的值:"+j);
???cars.setId(j+"");
???System.out.println("添加了卡牌:"+cars.getShape()+cars.getId());
???cardList.add(cars);
??}
??}
??for(Card card:cardList)
???System.out.println("輸出卡牌:"+card.getShape()+"?? "+card.getId());
?}
?public static void main(String[] args) {
??PaiTest pt = new PaiTest();
??pt.purcard();
??
?}
}
輸出卡牌:方片?? 12
輸出卡牌:方片?? 12
輸出卡牌:方片?? 12
輸出卡牌:方片?? 12
輸出卡牌:方片?? 12
輸出卡牌:方片?? 12
輸出卡牌:方片?? 12
輸出卡牌:方片?? 12
輸出卡牌:方片?? 12
輸出卡牌:方片?? 12
輸出卡牌:方片?? 12
輸出卡牌:黑桃?? 12
輸出卡牌:黑桃?? 12
輸出卡牌:黑桃?? 12
輸出卡牌:黑桃?? 12
輸出卡牌:黑桃?? 12
輸出卡牌:黑桃?? 12
輸出卡牌:黑桃?? 12
輸出卡牌:黑桃?? 12
輸出卡牌:黑桃?? 12
2016-12-15
sorry,原來問題在這,?Card cars = new Card();創(chuàng)建對象要放到循環(huán)外面,不然每次循環(huán)都是創(chuàng)建一個新對象,那么在最后遍歷的時候也就只有最后添加的“”12“”了,就這樣!
2016-12-15
2016-12-15
public void purcard(){
??
??String[] sh= {"方片","黑桃","紅桃","梅花"};
??for(int i=0;i<4;i++){
???Card cars = new Card();
???cars.setShape(sh[i]);
??
??for( int j=2;j<13;j++){
???System.out.println("j的值:"+j);
???cars.setId(j+"");
???System.out.println("添加了卡牌:"+cars.getShape()+cars.getId());
???cardList.add(cars);
??}
??}
??for(Card card:cardList)
???System.out.println("輸出卡牌:"+card.getShape()+"?? "+card.getId());
?}
在這個purcard()方法中的兩個for循環(huán),你的大括號位置不對,我猜你是拷貝程序的時候沒有注意粘貼位置,