我是Java新手,目前,我正在学习数组和循环。我的家庭作业有一个有趣的任务。
编写一个程序,将传递的每个价格相乘:
如果商品价格低于1000,则减2。如果商品价格大于或等于1000,则按1.5。
任务:
写入方法public void multiple prices (float [] prices)
。它接受一个价格数组,如果价格小于1000,则将每个价格乘以2,如果价格大于或等于1000,则乘以1.5。
测试示例:
用数据[100, 1500]
调用multiplyPrices()
,应将传输阵列改为[200, 2250]
。
我被困在这里=(
我写了一段代码,接受一个数组,将其转换为浮点数,接受它的值,并用if-else语句检查它,唯一的问题是我不知道如何把它放回去。
我的同学说,看起来好像我计算了正确的值,并立即在控制台中显示它们,而不改变价格数组的数据。最后的程序显示数组的值,这就是我得到这样一个结果的原因。不需要将x1
和x3
打印到控制台,我需要将x1
和x3
保存在索引i
下的价格数组中。然后,在检查任务时,"正确";
但是这怎么能做到呢?不幸的是,使用if-else,既不能向后提取数据,也不能向前提取数据。
你能给点建议吗?
提前感谢!
import java.util.Arrays;
public class QuadraticEquationSolver {
public void multiplyPrices(float[] prices) {
for (int i = 0; i < prices.length; i++) {
float season = prices[i];
if (season >= 1000) {
float x1 = season * 1.5f;
float x2 [] = new float[] {x1};
System.out.print(Arrays.toString(x2));
} else if (season < 1000 ) {
float x3 = season * 2f;
float x4 [] = new float[] {x3};
System.out.print(Arrays.toString(x4));
}
}
}
public static void main(String[] args) {
QuadraticEquationSolver shop = new QuadraticEquationSolver();
//Should be [200, 2250]
float[] prices = new float[] {100f, 1500f};
shop.multiplyPrices(prices);
System.out.println(Arrays.toString(prices));
}
}
试试下面的代码:
import java.util.Arrays;
public class QuadraticEquationSolver {
public void multiplyPrices(float[] prices) {
for (int i = 0; i < prices.length; i++) {
if (prices[i] < 1000)
prices[i] = prices[i] * 2;
else
prices[i] = (float) (prices[i] * 1.5);
}
}
public static void main(String[] args) {
QuadraticEquationSolver shop = new QuadraticEquationSolver();
//Should be [200, 2250]
float[] prices = new float[] {100f, 1500f};
shop.multiplyPrices(prices);
System.out.println(Arrays.toString(prices));
}
}
在这里阅读更多java数组