如何在 Java 中为 true if 语句打印多个值?

How to print multiple values for a true if statement in Java?

package leapYear;

import java.util.Scanner;
import javax.swing.JOptionPane;

public class leapYear {

    public static void main (String[] args){

    String yearInput = JOptionPane.showInputDialog("Enter the year here: ");
    Scanner inputScanner = new Scanner(yearInput);
    int year = inputScanner.nextInt();
    inputScanner.close();

    boolean leapYear = false;
    {

    if (year % 400 == 0)
    {
        leapYear = true;
    }

    else if (year % 100 == 0)
    {
        leapYear = false;
    }

    else if (year % 4 == 0)
    {
        leapYear = true;
    }

    else
    {
        leapYear = false;
    }

    if (leapYear)
        JOptionPane.showMessageDialog(null, year + " IS a leap year!");

    else JOptionPane.showMessageDialog(null, year + " is NOT a leap year!");
    }
}
}

基本上我想尝试做的是在 500-1000 之间输入一年,并让程序打印该时间段内的每个闰年。我是编码新手,不知道该怎么做。谢谢

您只需将代码放入某种循环即可:

for (int year = 500; year <= 1000; year++) {
 and here comes the code you already wrote

当然,你可能想要"beautify"东西;通过要求用户提供该循环的 "lower" 和 "upper" 限制:

for (int year = lowerLimitFromUser; year <= upperLimitFromUser; year++) {

换句话说:您要研究的下一个概念是关于使用 for loop

当然:为了轻松获得它们,您开始 通过创建像

这样的辅助方法
boolean isLeapYear(int year)

您可以在循环中调用。 (理想情况下,您首先更改代码以使用该新方法;以测试重组没有破坏逻辑)。

这里的示例更符合您可以对一系列日期执行的操作,请根据需要进行调整这只是一个示例,因为它并未考虑所有情况。

在此示例中,我使用 for 循环遍历 rage 以查看是否有闰年,然后将其标记为 true。

您应该考虑使用方法来执行功能,而不是将所有内容都放在 main 方法中。

import java.util.Scanner;
import javax.swing.JOptionPane;
public class StackStuff {


    public static void main (String[] args){
    int yearStart  = 0,yearEnd=0,year=0;
    String yearInput;
    boolean isLeap = false;
    String[] possibleValues = {"Year Range","Single Year" };
    String selectedValue = (String) JOptionPane.showInputDialog(null, "Choose one",
    "Input", JOptionPane.INFORMATION_MESSAGE, null,possibleValues, possibleValues[0]);

    if (selectedValue==possibleValues[0]){

        String yearInputStart = JOptionPane.showInputDialog("Enter the starting year here: ");
        String yearInputEnd = JOptionPane.showInputDialog("Enter the ending year here: ");
        Scanner inputScannerStart = new Scanner(yearInputStart);
        Scanner inputScannerEnd = new Scanner(yearInputEnd);
        yearStart = inputScannerStart.nextInt();
        yearEnd = inputScannerEnd.nextInt();
        inputScannerStart.close();
        inputScannerEnd.close();
        for (int i = yearStart ; i <= yearEnd;i++){
            if (i % 4 == 0){
                 isLeap = true;
                break;
            }else {
                isLeap = false;
            }

        }
        if(isLeap){
            JOptionPane.showMessageDialog(null,"There are leap years in this range");
        }else{
            JOptionPane.showMessageDialog(null," There are no leap years in this range");
        }


    }else{
        yearInput = JOptionPane.showInputDialog("Enter the year here: ");
        Scanner inputScanner = new Scanner(yearInput);
        year = inputScanner.nextInt();
        inputScanner.close();
        if (year% 4 == 0){
             isLeap = true;
        }
        else{
            isLeap = false;
        }

        if(isLeap){
            JOptionPane.showMessageDialog(null,"This is a leap year");
        }else{
            JOptionPane.showMessageDialog(null,"This is not a leap year");
        }
    }


  }

}