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) 展开
{
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) 展开
6个回答
展开全部
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]);的时候出现了下标越界。
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]);的时候出现了下标越界。
展开全部
你这个错是因为你的文件名字叫Demo19.java但是你写的public class demo19{}大小写弄错了
补充一点,for循环后面不加{}是没有问题的.
System.out.println(score[i]);会报ArrayIndexOutOfBoundsException:3意思是超过了3这个下标.
重新在另外一个循环里面遍历数组就可以了.
for(int j:score)
System.out.println(score[j]);
补充一点,for循环后面不加{}是没有问题的.
System.out.println(score[i]);会报ArrayIndexOutOfBoundsException:3意思是超过了3这个下标.
重新在另外一个循环里面遍历数组就可以了.
for(int j:score)
System.out.println(score[j]);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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循环什么的没有关系。
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循环什么的没有关系。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不加括号的情况下 只能是括号里只有一行内容
超出的就要加{}了
超出的就要加{}了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |