Java循环结构,它遍历字符串并使用多个变量

时间:2017-03-11 22:22:01

标签: java for-loop multiple-value

今天我正在努力重构一个旧的java练习。

这是一个简单的添加程序,要求用户输入一些数字,然后返回所有输入数字的总和。

package methodparametertest;

import java.util.Scanner;

public class MethodParameterTest {

    public static double adds(double a, double b, double c, double d, double e,
            double f, double g) {

       double sum = a + b + c + d + e + f + g;

        return sum;

    }

    public static double getDoubleInput(String valueWanted) {

        Scanner input = new Scanner(System.in);

        String askFor = valueWanted;

        System.out.println("Please enter a positive integer or decimal value"
                + "for your numnber of "+askFor);

        double valueGiven = input.nextDouble();

        return valueGiven;

    }

    public static void main(String[] args) {

       double a = getDoubleInput("passengers");
       double b = getDoubleInput("odometer_miles");
       double c = getDoubleInput("fuel_gallons");
       double d = getDoubleInput("miles_per_gallon");
       double e = getDoubleInput("seats");
       double f = getDoubleInput("wheels");
       double g = getDoubleInput("lights");


       System.out.println("Your total number of things: " +adds(a,b,c,d,e,f,g));

    }

}

过去,我的大多数程序的逻辑都在我的主要方法中。我今天的目标是让我的目标尽可能少 可能在main中,并尽可能多地将逻辑打包到单独的方法中。

我在main中仍有几行使用我的getDoubleInput方法来设置变量a到g的值(然后将其用作我的&#34的参数;添加"方法。

我想改变这个块并使用循环。也许某些事情会像这样:

#Shell-like pseudocode

For i in (a b c d e f g)
For j in ("passengers", "odometer miles", "fuel gallons", "miles_per_gallon", "seats", "wheels", "lights");

do

double $i = getDoubleInput($j);

done

//OUTPUT

//       double a = getDoubleInput("passengers");
//       double b = getDoubleInput("odometer miles");
//       double c = getDoubleInput("fuel gallons");
//       double d = getDoubleInput("miles_per_gallon");
//       double e = getDoubleInput("seats");
//       double f = getDoubleInput("wheels");
//       double g = getDoubleInput("lights");

但是,我找不到如何在java中实现它的示例。我见过的大多数循环只迭代数值,而不是一组定义的字符串。

有没有人知道一个循环结构可以A:迭代字符串,B:使用两个变量?

2 个答案:

答案 0 :(得分:1)

没有adds方法;只需使用普通旧的添加。将标题放在列表中并迭代:

double sum = 0;
for (String title : Arrays.asList("passengers", "odometer miles", ...)) {
  sum += getDoubleInput(title);
}
System.out.println("Your total number of things: " + sum);

答案 1 :(得分:0)

试试这个:

String[] strArray = Arrasy.asList(new String[] {"passengers", "odometer miles", "fuel gallons", "miles_per_gallon", "seats", "wheels", "lights"});

List<Integer> list = new ArrayList<>();
for (String str: strArray) {
   list.add(getDoubleInput(str));
}

System.out.println("Your total number of things: " +adds(list));

然后修改添加到接受列表。