Java 如何在JOptionPane中允许来自用户的多个输入
在我尝试插入数组之前,代码返回年份输入的独立值,但我更希望输入一个列表,如果是闰年,则显示该列表。如果不是,就应该忽略它。我没有将数组与JOptionPane一起使用。。。事实上,我从来没有使用过数组,因为这是我使用java的第四周,所以我非常不喜欢数组。但绝对愿意接受批评和建议。我想变得更好。提前谢谢 导入javax.swing.JOptionPane 公共类SimpleMath{Java 如何在JOptionPane中允许来自用户的多个输入,java,return-value,joptionpane,Java,Return Value,Joptionpane,在我尝试插入数组之前,代码返回年份输入的独立值,但我更希望输入一个列表,如果是闰年,则显示该列表。如果不是,就应该忽略它。我没有将数组与JOptionPane一起使用。。。事实上,我从来没有使用过数组,因为这是我使用java的第四周,所以我非常不喜欢数组。但绝对愿意接受批评和建议。我想变得更好。提前谢谢 导入javax.swing.JOptionPane 公共类SimpleMath{ public static int printLeap(int r, int k){ if((r %
public static int printLeap(int r, int k){
if((r % 4 == 0) && (r % 100 != 0) || (r % 400 == 0)){
return r;
}
else if ((r % 4 != 0) && (r % 100 == 0) || (r % 400 != 0));
return k;
}
public static void main(String[] args) {
while (true) { //while the statement is true (so it continues indefinitely until the break occurs).
String year = JOptionPane.showInputDialog("Enter input years to be tested, when done type End");
int year[] = new year[10];
for (int x=0; x<year.length; x++)
if ("End".equals(year)){ //if the user types End then the loop will break. it allows a string to be input for an int value
break;
} {
int r = Integer.parseInt(year);
int k = 0;
int i = printLeap(r, k);
if (i == 0) {
break; // or System.out.println("");
}
else
System.out.println("Leap years entered are: " + i + x);
}
}
}
publicstaticintprintleap(intr,intk){
如果((r%4==0)和&(r%100!=0)| |(r%400==0)){
返回r;
}
如果((r%4!=0)和&(r%100==0)| |(r%400!=0));
返回k;
}
公共静态void main(字符串[]args){
while(true){//while语句为true(因此它将无限期地继续,直到中断发生)。
字符串year=JOptionPane.showInputDialog(“输入要测试的输入年份,完成后键入End”);
国际年[]=新年[10];
对于(int x=0;x,让我们从一些常规代码检查项目开始:
代码的格式不好,这使得它很难阅读。修复缩进有助于使其他人可读
printLeap
方法接受您调用的一个参数k
。当您调用您的方法时,您会将值0传递给它,因为您已将k
初始化为0,并且它从未更改。因此,这迫使我问-如果k
从未更改,为什么它是一个参数
您的代码中有语法错误。此行:int year[]=new year[10];
错误-应将其写入int[]year=new int[10];
但当这一问题得到解决时,会产生一个全新的问题,即重复变量。您声明的数组与上面的字符串冲突:String year=JOptionPane.showInputDialog(…);
稍后在代码中,您将尝试将年份
解析为整数,但由于integer.parseInt(…)
将字符串
作为参数而不是数组,因此无法执行此操作
变量名称太短,没有任何意义。在大多数情况下,使用单字符名称的变量,如r
,k
,i
,都不是一个好主意。通常,唯一可以接受使用单字符名称作为变量的时间是在for
循环定义内,如:for(inti=0;我建议先从基础开始,然后转到GUI组件。为什么不接受一个逗号分隔的年份列表,并使用它创建一个数组呢?
//Accept input from the user - a single String containing multiple years separated by commas.
String input = JOptionPane.showInputDialog("Enter years to be tested (comma separated): ");
//Split the String by commas and store the resulting individual years in an array
String[] yearArray = input.split(",");
//Process each year in the array
for(String year: yearArray){
int intYear = Integer.parseInt(year);
System.out.println("Here's the integer value: " + intYear);
//Do more logic here...
}