java - 通过方法正确返回和传递/调用变量
问题描述
我有方法 readAccts 并在其中返回变量 numAccts。当我打印到控制台以尝试查看运行时 numAccts 的值时,它显示为 6,根据我的输入文件,这是正确的。但是,我认为当它返回 main 时,它会将自身设置回 0?任何意见表示赞赏,谢谢。
import java.io.*;
import java.util.*;
public class HW7 {
public static void main(String[] args) throws IOException{
File myFile = new File("HW71input.txt"); // Making a new text file for input
Scanner inputFile = new Scanner(myFile); // Letting it read the file
PrintWriter outputFile = new PrintWriter("HW71output.txt"); // Creating the text output file
final int MAX_NUM = 50;
int[] acctNum = new int[MAX_NUM];
double[] balance = new double[MAX_NUM];
int numAccts = 0;
int maxAccts = 50;
char myChoice;
readAccts(acctNum, balance, maxAccts);
printAccts(acctNum, balance, numAccts, outputFile);
do {
menu();
myChoice = inputFile.next().charAt(0);
System.out.println("You chose: " + myChoice);
System.out.println("");
switch (myChoice) {
case 'W':
case 'w':
break;
case 'D':
case 'd':
break;
case 'N':
case 'n':
break;
case 'B':
case 'b':
break;
case 'Q':
case 'q':
break;
case 'X':
break;
default:
System.out.println("Wrong Option!");
break;
}
} while(inputFile.hasNext());
inputFile.close();
outputFile.close();
}
public static int readAccts(int[] acctNum, double[] balance, int maxAccts) throws IOException{
File myFile = new File("initAccts.txt");
Scanner inputFile = new Scanner(myFile);
int numAccts = 0;
int j = 0;
int n = 0;
while(inputFile.hasNext()) {
acctNum[n] = inputFile.nextInt();
n++;
balance[j] = inputFile.nextDouble();
j++;
numAccts++;
}
System.out.println("\n\n\n\n\n" + numAccts);
inputFile.close();
return numAccts;
}
public static void menu() {
System.out.println("What action would you want to do?:\n"
+ "W for Withdrawl\n"
+ "D for Deposit\n"
+ "N for New Account\n"
+ "B for Balance\n"
+ "Q to Quit\n"
+ "X for Delete Account\n");
}
public static void printAccts(int[] acctNum, double[] balance, int numAccts, PrintWriter HW71output) throws IOException{
for(int i = 0; i < numAccts; i++) {
HW71output.println("Account Number: " + acctNum[i]);
HW71output.println("Balance: " + balance[i]);
HW71output.println("");
}
}
}
解决方案
您忽略了readAccts
. 您需要将其分配给变量以保存它。例如:
numAccts = readAccts(acctNum, balance, maxAccts);
推荐阅读
- javascript - 函数返回时渲染组件
- javascript - 将 React 状态对象转换为正确的 JSON 模式
- c# - ASP.NET Razor 页面错误:InvalidOperationException:不正确的内容类型
- php - 将脚本从 MySql PDO & INSERT 更改为 PostGRESql
- python - 获取字典映射值到引用 ID
- c++ - 子进程退出后,来自匿名管道的 ReadFile 不返回
- javascript - 如何安全地设置 Facebook Web SDK
- javascript - 尝试将映射键转换为数组时遇到错误
- php - PHP最佳实践显示包含大量行数的文件中的所有行
- laravel - 管理面板中带孩子的模型的 UX