黑马程序员技术交流社区
标题:
关于字符串的小问题
[打印本页]
作者:
吴亨
时间:
2011-12-14 17:28
标题:
关于字符串的小问题
本帖最后由 stephen8341 于 2011-12-14 23:20 编辑
public class TestInteger {
public static void main(String[] args) {
int width = new Integer(args[0]).intValue();
int height = Integer.parseInt(args[1]);
for(int i=0;i<height;i++)
StringBuffer sb = new StringBuffer();
for(int j=0;j<width;j++)
{
sb.append('*');
}
System.out.println(sb.toString());
}
}
输出结果是:
D:\java>javac TestInteger.java
TestInteger.java:14: 错误: 不是语句
StringBuffer sb = new StringBuffer();
^
TestInteger.java:14: 错误: 需要';'
StringBuffer sb = new StringBuffer();
^
2 个错误
作者:
吴亨
时间:
2011-12-14 17:28
求大家指教一下
作者:
郝亚平
时间:
2011-12-14 17:40
循环体执行语句是多句,不能省略大括号。
你上面的代码,sb是在循环体内部定义的,出去循环体就内存释放了。
循环体外边根本不认识。循环体加上大括号试试。
作者:
唐秀启
时间:
2011-12-14 18:02
本帖最后由 benbenqi 于 2011-12-14 18:13 编辑
public class TestInteger
{
public static void main(String[] args)
{
int width = new Integer(args[0]).intValue();
int height = Integer.parseInt(args[1]);
for(int i=0;i<height;i++)
[color=red]{[/color] StringBuffer sb = new StringBuffer();
for(int j=0;j<width;j++)
{
sb.append('*');
}
System.out.println(sb.toString());
[color=red]}[/color]
}
}
复制代码
缺少了括号
for(int i=0;i<height;i++)
StringBuffer sb = new StringBuffer();
一直执行这2句 直到i不小于height 你简历了N多StringBuffer对象,而且都是sb名称
剩下的你应该直到如何操作了
作者:
songxingchao
时间:
2011-12-14 22:41
for(int i=0;i<height;i++)
for循环后面缺少了花括号{}, 没有花括号的话,它只循环执行后面最近的一句,即StringBuffer sb = new StringBuffer() 。
作者:
郝锡强
时间:
2011-12-14 22:44
郝亚平 发表于 2011-12-14 17:40
循环体执行语句是多句,不能省略大括号。
你上面的代码,sb是在循环体内部定义的,出去循环体就内存释放了 ...
正解,循环体中的定义大多如此
作者:
吴亨
时间:
2011-12-14 23:19
奥,我太粗心了。谢谢大家
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2