在数组 (Java) 中存储一个元素,直到我输入一些东西来阻止它
Storing an Element in Array (Java) until I type something to stop it
我正在用 Java 做这个项目,我正在尝试做一些计算并将它添加到一个数组中,这样当我输入“-1”时我可以输出这个数组中的所有元素但是即使我输入“-1”,它也会继续调用该函数
(我开始学习了Java)
public class main {
public static double computeIncome(double SalesAmount) {
double num = SalesAmount;
double baseSalary = 5000;
double numTotal = baseSalary;
if(num < 5000.01) {
numTotal += num * 0.08;
}
else {
if(num < 10000.01) {
numTotal += ((num - 5000) * 0.10);
numTotal += baseSalary * 0.08;
}
else {
numTotal += ((num - 10000) * 0.12);
numTotal += baseSalary * 0.10;
numTotal += baseSalary * 0.08;
}
}
return numTotal;
}
static void cd(int DataCount, double[] DataBase) {
int dataCount = 0;
double[] db = DataBase;
Scanner reader = new Scanner(System.in);
double x = computeIncome(reader.nextDouble());
if(x != -1) {
db[dataCount] = x;
dataCount += 1;
cd(dataCount, db);
}
else {
for (int i = 0; i < db.length; i++) {
System.out.println(db[i] + " ");
}
}
reader.close();
}
public static void main(String[] args) {
int dataCount = 0;
double[] db = new double[20];
System.out.println("Input the sales: (type '-1' to finish )");
cd(dataCount, db);
}
}
因此,当我输入 -1 时,即使我已经实现了一个 else 函数,它也会继续调用一个函数
我知道这应该是一个简单的代码,但我觉得这篇文章让我的生活变得非常艰难
我已经稍微更改了您的代码 - 根据 Java 标准修复了一些逻辑并重命名了参数。我相信现在它可以达到您的预期:
public class main {
public static double computeIncome(double salesAmount) {
double num = salesAmount;
double baseSalary = 5000;
double numTotal = baseSalary;
if(num < 5000.01) {
numTotal += num * 0.08;
}
else {
if(num < 10000.01) {
numTotal += ((num - 5000) * 0.10);
numTotal += baseSalary * 0.08;
}
else {
numTotal += ((num - 10000) * 0.12);
numTotal += baseSalary * 0.10;
numTotal += baseSalary * 0.08;
}
}
return numTotal;
}
static void cd(int dataCount, double[] dataBase) {
int currentDataCount = dataCount;
double[] db = dataBase;
Scanner reader = new Scanner(System.in);
double valueFromInput = reader.nextDouble();
if (valueFromInput == -1) {
for (int i = 0; i < db.length; i++) {
System.out.println(db[i] + " ");
}
}
double x = computeIncome(valueFromInput);
db[currentDataCount] = x;
currentDataCount += 1;
cd(currentDataCount, db);
reader.close();
}
public static void main(String[] args) {
int dataCount = 0;
double[] db = new double[20];
System.out.println("Input the sales: (type '-1' to finish )");
cd(dataCount, db);
}
}
*class 也应重命名为 Main(Java class 名称应以大写字母开头)。如果您愿意,我可以展示如何进一步改进此代码
我正在用 Java 做这个项目,我正在尝试做一些计算并将它添加到一个数组中,这样当我输入“-1”时我可以输出这个数组中的所有元素但是即使我输入“-1”,它也会继续调用该函数 (我开始学习了Java)
public class main {
public static double computeIncome(double SalesAmount) {
double num = SalesAmount;
double baseSalary = 5000;
double numTotal = baseSalary;
if(num < 5000.01) {
numTotal += num * 0.08;
}
else {
if(num < 10000.01) {
numTotal += ((num - 5000) * 0.10);
numTotal += baseSalary * 0.08;
}
else {
numTotal += ((num - 10000) * 0.12);
numTotal += baseSalary * 0.10;
numTotal += baseSalary * 0.08;
}
}
return numTotal;
}
static void cd(int DataCount, double[] DataBase) {
int dataCount = 0;
double[] db = DataBase;
Scanner reader = new Scanner(System.in);
double x = computeIncome(reader.nextDouble());
if(x != -1) {
db[dataCount] = x;
dataCount += 1;
cd(dataCount, db);
}
else {
for (int i = 0; i < db.length; i++) {
System.out.println(db[i] + " ");
}
}
reader.close();
}
public static void main(String[] args) {
int dataCount = 0;
double[] db = new double[20];
System.out.println("Input the sales: (type '-1' to finish )");
cd(dataCount, db);
}
}
因此,当我输入 -1 时,即使我已经实现了一个 else 函数,它也会继续调用一个函数 我知道这应该是一个简单的代码,但我觉得这篇文章让我的生活变得非常艰难
我已经稍微更改了您的代码 - 根据 Java 标准修复了一些逻辑并重命名了参数。我相信现在它可以达到您的预期:
public class main {
public static double computeIncome(double salesAmount) {
double num = salesAmount;
double baseSalary = 5000;
double numTotal = baseSalary;
if(num < 5000.01) {
numTotal += num * 0.08;
}
else {
if(num < 10000.01) {
numTotal += ((num - 5000) * 0.10);
numTotal += baseSalary * 0.08;
}
else {
numTotal += ((num - 10000) * 0.12);
numTotal += baseSalary * 0.10;
numTotal += baseSalary * 0.08;
}
}
return numTotal;
}
static void cd(int dataCount, double[] dataBase) {
int currentDataCount = dataCount;
double[] db = dataBase;
Scanner reader = new Scanner(System.in);
double valueFromInput = reader.nextDouble();
if (valueFromInput == -1) {
for (int i = 0; i < db.length; i++) {
System.out.println(db[i] + " ");
}
}
double x = computeIncome(valueFromInput);
db[currentDataCount] = x;
currentDataCount += 1;
cd(currentDataCount, db);
reader.close();
}
public static void main(String[] args) {
int dataCount = 0;
double[] db = new double[20];
System.out.println("Input the sales: (type '-1' to finish )");
cd(dataCount, db);
}
}
*class 也应重命名为 Main(Java class 名称应以大写字母开头)。如果您愿意,我可以展示如何进一步改进此代码