在 for (Array - java) 上创建条件

Create a condition on a for (Array - java)

我想为变量创建条件 "int edad" 但我很困惑...

我特别需要这一行的条件

Integer.parseInt(JOptionPane.showInputDialog("Ingrese edad")),

这是一个 int 变量,我想验证它在 0 到 100 之间,然后给用户一个消息并再次询问这个变量。

package pruebas;

import javax.swing.JOptionPane;

public class Persona {

public static void main(String[] args) {
    Estudiante [] misEstudiantes2 = new Estudiante[1];

    for(int i = 0; i< misEstudiantes2.length; i++){

        misEstudiantes2[i] = new Estudiante(JOptionPane.showInputDialog("Ingrese nombre").toUpperCase(), 
           Integer.parseInt(JOptionPane.showInputDialog("Ingrese edad")),
           JOptionPane.showInputDialog("Ingrese carrera"),
           Integer.parseInt(JOptionPane.showInputDialog("Ingrese año")),
           Integer.parseInt(JOptionPane.showInputDialog("Ingrese mes")),
           Integer.parseInt(JOptionPane.showInputDialog("Ingrese dia")),
           Double.parseDouble(JOptionPane.showInputDialog("Ingrese sueldo")));

        misEstudiantes2[i].estableceSueldo(1);

        System.out.println("Objetos del array \n" + misEstudiantes2[i].dameNombre() + "\n" + misEstudiantes2[i].dameSueldo() + "\n" +
        misEstudiantes2[i].dameCarrera() + "\n" + misEstudiantes2[i].dameFecha() + "\n" + "La edad es " + misEstudiantes2[i].dameEdad());
    }
}
}

如果在构造新学生对象之前将所有用户输入存储到变量中,这是可能的。

String name = JOptionPane.showInputDialog("Ingrese nombre").toUpperCase();
int age = Integer.parseInt(JOptionPane.showInputDialog("Ingrese edad"));
String career = JOptionPane.showInputDialog("Ingrese carrera");
int year = Integer.parseInt(JOptionPane.showInputDialog("Ingrese año"));
int month = Integer.parseInt(JOptionPane.showInputDialog("Ingrese mes"));
int day = Integer.parseInt(JOptionPane.showInputDialog("Ingrese dia"));
double salary = Double.parseDouble(JOptionPane.showInputDialog("Ingrese sueldo")));

misEstudiantes2[i] = new Estudiante(name, age, career, year, month, day, salary);

在这里,您可以对变量进行任何必要的检查。例如:

int age = Integer.parseInt(JOptionPage.showInputDialog("Ingrese edad"));
while (age < 0 || age > 100) { // in case they put in an invalid number
                               // try again, with a notice about the range
    age = Integer.parseInt(JOptionPage.showInputDialog("Ingrese edad, mas de 0 y menos de 100"));
}

试着写一个方法来为你做这件事。例如:

public static Integer promptForInteger(int min, int max, String message, String message2) {
  Integer result = Integer.parseInt(JOptionPane.showInputDialog(message));
  while(result < min || result > max) {
    result = Integer.parseInt(JOptionPane.showInputDialog(message2));
  }
  return result;
}

然后在创建对象时调用它:

misEstudiantes2[i] = new Estudiante(JOptionPane.showInputDialog("Ingrese nombre").toUpperCase(),
                                    promptForInteger(0, 100, "Ingrese edad", "Ingrese edad, mas de 0 y menos de 100"),
                                    JOptionPane.showInputDialog("Ingrese carrera"),
                                    Integer.parseInt(JOptionPane.showInputDialog("Ingrese año")),
                                    Integer.parseInt(JOptionPane.showInputDialog("Ingrese mes")),
                                    Integer.parseInt(JOptionPane.showInputDialog("Ingrese dia")),
                                    Double.parseDouble(JOptionPane.showInputDialog("Ingrese sueldo")));

我不懂您的母语,所以我使用了 johnhopkinses 答案中的字符串。

帮用户一个忙,为他们提供一个微调器以 select 号码。

import javax.swing.*;

class VerifiedIntegerInRange {

    public VerifiedIntegerInRange() {
        SpinnerNumberModel numberRange = new SpinnerNumberModel(-1,-1,100,1);
        JSpinner spinner = new JSpinner(numberRange);
        int i = numberRange.getNumber().intValue();
        while (i<0) {
            JOptionPane.showMessageDialog(
                null,
                spinner,
                "Select a number between 0 & 100",
                JOptionPane.QUESTION_MESSAGE);
            i = numberRange.getNumber().intValue();
        }
        System.out.println("User chose " + i);
    }

    public static void main(String[] args) {
        Runnable r = new Runnable() {
            public void run() {
                new VerifiedIntegerInRange();
            }
        };
        SwingUtilities.invokeLater(r);
    }
}