今天我正在努力重构一个旧的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:使用两个变量?
答案 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));
然后修改添加到接受列表。