我的数组充满了null

时间:2017-12-10 18:10:18

标签: java arrays loops for-loop

package assign;

import java.util.Scanner;

public class tests {
public static void main(String[] args) {
Scanner s = new Scanner (System.in);
System.out.println("How many sous chef do we have?");
int two = s.nextInt();
if(two <= 0) { 
    do { 
    System.out.println("Please enter a valid number:");
    two = s.nextInt();
    }while (two <= 0); 
    }
String [] souschef = new String[two];
for (int m = 0; m < souschef.length; m++) { 
    System.out.println("Enter the name of sous chef"+ m + ":");
    String f = s.next();
    f = souschef [m];
}
for (int i = 0; i < souschef.length; i++) {
    System.out.println(souschef[i]);
}
}
}

输入的名称无关紧要,输出全为空。没有填充数组的for循环吗?例如,我输入3个名字:约翰,杰克和鲍勃。 <不要

for (int i = 0; i < souschef.length; i++) {
        System.out.print(souschef[i]);
    } 

循环给我

  

John Jack Bob

但输出是

  

null null null

谢谢!

2 个答案:

答案 0 :(得分:0)

变化

f = souschef[m];

souschef[m] = f;

您希望使用从输入(souchef)读取的内容填充f数组,而不是相反。

答案 1 :(得分:0)

只需将您的循环更改为:

for (int m = 0; m < souschef.length; m++) { 
    System.out.println("Enter the name of sous chef"+ m + ":");
    String f = s.next();
    souschef [m]=f; //Assign f to String array
}

在您的程序中,您正在使用变量f中的用户输入,但使用f=souschef [m];

将其指定为空