gpt4 book ai didi

Java 逻辑错误 - If 语句

转载 作者:行者123 更新时间:2023-12-02 04:15:54 26 4
gpt4 key购买 nike

我需要测试字符串输入日期(mm/dd/yyyy)是否有效。标准是正常日历的标准,特别是对于我的问题,月份需要在 1 到 12 之间。无论出于何种原因,如果我输入有效的月份,并且根据我的 if 语句,输入本身应该为 true,我的程序将其读取为 false。

例如,如果我输入 01/01/2000,int 月份将 = 1。因此该月份大于 0 且小于 13。但是程序将其读取为 false,我无法弄清楚为什么。谢谢

import java.util.Scanner;

public class C3PP4_Benjamin_Crosta_CTIM15701 {
public static void main(String[] args) {
String inputDate, monthString, dayString, yearString;
boolean validMonth, leapYear;
Scanner keyboard = new Scanner(System. in );

//user input
System.out.println("Please enter date. (mm/dd/yyyy)");
inputDate = keyboard.nextLine();

//PROCESSING
monthString = inputDate.substring(0, 2);
dayString = inputDate.substring(3, 5);
yearString = inputDate.substring(6, 10);

//String to int conversion
int month = Integer.parseInt(monthString);
int day = Integer.parseInt(dayString);
int year = Integer.parseInt(yearString);

//months
if ((month > 0 && month < 13)) validMonth = true;
else validMonth = false;
System.out.println("Your date is invalid because the month you entered does not exist.");
}
}

最佳答案

if (month > 0 && month < 13){
validMonth = true;
} else {
validMonth = false;
System.out.println("Your date is invalid because the month you entered does not exist.");
}

如果不使用大括号,它只会执行下面一行,该 if 语句也使用单括号

您还可以使用“/”分割:

String date = "01/01/1970";
String[] split = date.split("/");
int day = Integer.parseInt(split[0]);
int month = Integer.parseInt(split[1]);
int year = Integer.parseInt(split[2]);

关于Java 逻辑错误 - If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33337526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com