java循环向数组赋值。菜鸟提问 for循环里没有加括号(),为什么会报错呢,?

publicclassdemo19{publicstaticvoidmain(Stringargs[]){intscore[]=newint[3];inti=0;for(... public class demo19
{
public static void main(String args[])
{

int score[]=new int[3];
int i=0;

for(i=0;i<score.length;i++)

score[i]=i;
System.out.println(score[i]);

}
}

Exception in thread "main" java.lang.NoClassDefFoundError: Demo19 (wrong name: d
emo19)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14
2)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:476)
展开
 我来答
消失的大河
2012-06-19
知道答主
回答量:19
采纳率:0%
帮助的人:7.5万
展开全部
for循环不加{}来包裹相关内容的话, 他只会认for循环的下一句语句是循环内的,但for循环的下二句语句就不认在循环内。

for(i=0;i<score.length;i++)
score[i]=i;
System.out.println(score[i]);

等同于

for(i=0;i<score.length;i++)
{
score[i]=i;
}
System.out.println(score[i]);
由于以System.out.println(score[i]);里的i在循环外 所以你循环做完以后i的值已经超过了数组的下标,所以在System.out.println(score[i]);的时候出现了下标越界。
般若兮若
2012-06-19 · TA获得超过2706个赞
知道小有建树答主
回答量:1246
采纳率:0%
帮助的人:941万
展开全部
你这个错是因为你的文件名字叫Demo19.java但是你写的public class demo19{}大小写弄错了
补充一点,for循环后面不加{}是没有问题的.
System.out.println(score[i]);会报ArrayIndexOutOfBoundsException:3意思是超过了3这个下标.
重新在另外一个循环里面遍历数组就可以了.
for(int j:score)
System.out.println(score[j]);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bd9006
2012-06-19 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.6亿
展开全部
length是数组的属性。错误不在这,而在System.out.println(score[i]); 这个时候的i超出下标了。

public class Demo19{
public static void main(String args[]){
int score[]=new int[3];
int i=0;

for(i=0;i<score.length;i++)
score[i]=i;
for(i=0;i<score.length;i++)
System.out.println(score[i]);
}
}

这样对齐好看一些。

javac Demo*.java
java Demo19
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
召秋梵悌p1
2012-06-19 · TA获得超过2282个赞
知道小有建树答主
回答量:616
采纳率:80%
帮助的人:686万
展开全部
for(i=0;i<score.length;i++) { //这里
score[i]=i;
System.out.println(score[i]);
} //这里

加一对大括号就好了。
不过你的错误提示完全是另外一个问题:
Exception in thread "main" java.lang.NoClassDefFoundError: Demo19 (wrong name: d
emo19)
原因应该是这个Demo19类对应的java文件名字应该是Demo19.java 你看看是不是大小写不对。

这个错误和这里的for循环什么的没有关系。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lpWeep
2012-06-19 · 超过24用户采纳过TA的回答
知道答主
回答量:262
采纳率:0%
帮助的人:69.1万
展开全部
不加括号的情况下 只能是括号里只有一行内容
超出的就要加{}了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式