日期:2014-05-20  浏览次数:20953 次

java新手使用for循环完成数组元素的插入
import java.util.Scanner;

public class TestArray {
public static void main(String[] args) {
String n[]=new String[50];
n[0]="张三";
n[1]="李四";
n[2]="王五";
Scanner input=new Scanner(System.in);
System.out.println("请输入您的姓名:");
String name=input.next();

for(int i=0;i<n.length;i++){
if(n[i]==null){
n[i]=name;
System.out.println("添加成功"); //①
break;                         //②
}
                        //①和②放在此处时出现警告"dead code",警告位置是for循环里的i++,
//而且下面遍历数组非空元素的时候,应该插入的元素没能成功加入。请教这2处的区别,因为我看起来好像作用一样。。
}

for(String v:n){
if(v==null)
break;
System.out.println(v);
}
}
}

------最佳解决方案--------------------
//①和②放在此处时出现警告"dead code",警告位置是for循环里的i++
—— 你放这里相当于 break; 是循环中必然会被执行的语句(无视if条件),而且第一次循环就会执行,当然i++毫无意义。

是没排版的原因,还是你真的看不出区别么?
◎只有if成立才会执行①和②;
if(n[i]==null){
    n[i]=name;
    System.out.println("添加成功"); //①
    break;                         //②
}

◎无论if是否成立,只要if语句块执行完毕,就会继续执行①和②
if(n[i]==null){
    n[i]=name;
}
System.out.println("添加成功"); //①
break;                         //②

------其他解决方案--------------------
我在linux下的命令窗口运行没有错误,也没有警告:

运行结果:

zhaoming@ubuntu:~/workspace/exercise$ javac TestArray.java
zhaoming@ubuntu:~/workspace/exercise$ java TestArray
请输入您的姓名:
123
添加成功
张三
李四
王五
123

------其他解决方案--------------------
引用:
//①和②放在此处时出现警告"dead code",警告位置是for循环里的i++
—— 你放这里相当于 break; 是循环中必然会被执行的语句(无视if条件),而且第一次循环就会执行,当然i++毫无意义。

是没排版的原因,还是你真的看不出区别么?
◎只有if成立才会执行①和②;
if(n[i]==null){
    n[i]=name;
    Sy……

谢谢。我不知道怎么了,居然会卡在这里,我明白你说的。哎……