我是Java的初学者,正在开发一个包含数组和循环的基本程序。该计划必须: - 要求用户输入“推销员”的名称5次。这5个名称将存储在String数组中。 - 另一个DOUBLE数组用于存储每个人的销售额。 - 数据将最终打印出来。
这是我到目前为止所拥有的:
public static void main (String[] args)
{
String[] names = new String[5];
System.out.println ("What is the name of the person?")
String name = scan.next();
double[] sales = new double[5];
sales[0] = 15000.00;
sales[1] = 10000.00;
sales[2] = 4500.00;
sales[3] = 2500.00;
sales[4] = 3500.00;
System.out.println(name1 + "sold " + sales[0]);
System.out.println(name2 + "sold " + sales[1]);
System.out.println(name3 + "sold " + sales[2]);
System.out.println(name4 + "sold " + sales[3]);
System.out.println(name5 + "sold " + sales[4]);
}
}
我知道第一部分不正确......以及大部分输出。
我的导师对我们班上的解释不太感兴趣。她通常忙于与班级的不同部分一起工作。我基本上对数组一无所知。 如果你们中的一个人能够告诉我我需要进入哪里以及在哪里,我一定会学到一些东西?
答案 0 :(得分:9)
您需要使用for循环以避免必须为每个实例重复代码行。你想要更像这样的东西:
public static void main (String[] args)
{
String[] names = new String[5];
double[] sales = new double[5];
Scanner scan = new Scanner(System.in);
for (int i=0; i<5; i++) {
System.out.println ("What is the name of the person?");
name[i] = scan.next();
System.out.println ("How much did they sell?");
sales[i] = scan.nextDouble();
}
for (int i=0; i<5; i++) {
System.out.println (name[i] + " sold " + sales[i]);
}
}
在此处http://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html了解有关如何使用for循环的更多信息。我编写的循环将在i = 0,1,2,3和4时执行代码。i=0
告诉循环从哪里开始。只要i小于5,i<5
就会告诉循环执行代码。i++
是i=i+1
的简写,告诉循环最后我要做什么(增加)我乘1并再次测试结束条件。)
ETA:http://www.homeandlearn.co.uk/java/user_input.html显示了如何使用Scanner类获取输入。
答案 1 :(得分:5)
使用集合时会更容易。
使用它来简化实现并更好地理解集合。
Scanner scanner = new Scanner(System.in);
List<String> list = new ArrayList<String>();
for (int i = 0; i < 5; i++) {
list.add(scanner.nextLine());
}
用于打印使用此功能。
for(String result : list){
System.out.println(result);
}
答案 2 :(得分:2)
只需在循环内使用Scanner即可。
String[] names = new String[5];
double[] sales = new double[5];
Scanner scanner = new Scanner(System.in);
for(int i = 0; i < names.length; i++){
System.out.print ("Please input name of sale " + (i+1) + ": ");
names[i] = scanner.nextLine();
System.out.print ("Please input sales of sale " + (i+1) + ": ");
sales[i] = scanner.nextDouble();
}
// following lines is for testing
for(int i=0; i < names.length; i++){
System.out.println(names[i]+" " + sales[i]);
}
由于Java是面向对象的,因此我建议您创建一个名为Salesman的类,其中包含名称和销售属性。
// Salesman class
class Salesman{
private String name;
private double sales;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSales() {
return sales;
}
public void setSales(double sales) {
this.sales = sales;
}
}
再一次是主要方法。
public static void main (String[] args)
{
List<Salesman> salesmanList = new ArrayList<Salesman>(5);
Scanner scanner = new Scanner(System.in);
for(int i = 0; i < 5; i++){
Salesman salesman = new Salesman();
System.out.print ("Please input name of sale " + (i+1) + ": ");
salesman.setName(scanner.nextLine());
System.out.print ("Please input sales of sale " + (i+1) + ": ");
salesman.setSales(scanner.nextDouble());
salesmanList.add(salesman);
}
// following lines is for testing
for(Salesman salesman : salesmanList){
System.out.println(salesman.getName()+" " + salesman.getSales());
}
}
答案 3 :(得分:2)
试试这个:
public void getInput(){
Scanner scanner = new Scanner(System.in);
System.out.println("Enter the total no of i/p :")
int count = scanner.nextInt();
List<String> collectionOfInput = new ArrayList<String>();
for (int i = 0; i < count; i++) {
collectionOfInput.add(scanner.nextLine());
}
}
public void printOutput(){
for(String outputValue : collectionOfInput){
System.out.println(result);
}