出错了,JAVA基础题,求改正

[复制链接]
查看11 | 回复1 | 2011-6-29 03:59:48 | 显示全部楼层 |阅读模式
class Demo{

public static void main(String[] args){

jishuan(5);

System.out.println("==========================不要看我=====================");

jishuan2(9);

}

public static void jishuan(int x){

int hangshou = 1 ;//定义第行第一个数的值

for (int a=1; a0; b++){

System.out.print(result+"\t");

result += b+1;

}

System.out.println();

}

}
public static void jishuan2(int x){

StringBuffer[] s1 = new StringBuffer[x];

int num = 1;

for (int a=0; a=0; b--,num++)

{
                                                        if (s1 != null)
                                                        {
                                                                s1.append(String.valueOf(num));
                                                        }else
                                                                s1.append(String.valueOf(num));

}

}
                                for (int a=0; a<x; a++)
                                {
                                        System.out.println(s1[a]);
                                }

}
}
为什么我写的第一个方法可以,第二个方法怎么都不行呢。。

回复

使用道具 举报

千问 | 2011-6-29 03:59:48 | 显示全部楼层
是因为你的第二个方法中if (s1 != null){
s1.append(String.valueOf(num));}else{
s1.append(String.valueOf(num));}这个部分你如果s1=null的,else里面就不能对其直接赋值。必须新建一个StringBuffer对象放到s1里面,才可以对其进行赋值操作。改正后的这一部分请参考下面:if (s1 != null){s1.append(String.valueOf(num)+"\t");}else{s1= new StringBuffer(String.valueOf(num)+"...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行