Java 循环验证
我需要帮助找出一个完整的日期,然后验证它是一个真正的日期 这就是我目前所拥有的Java 循环验证,java,validation,date,loops,Java,Validation,Date,Loops,我需要帮助找出一个完整的日期,然后验证它是一个真正的日期 这就是我目前所拥有的 import java.util.Scanner; public class numerology { public static void main( String args[]) { Scanner input = new Scanner(System.in); int month = 0; int date =
import java.util.Scanner;
public class numerology
{
public static void main( String args[])
{
Scanner input = new Scanner(System.in);
int month = 0;
int date = 0;
int year = 0;
char slash = '/';
int checker = 0; //a flag used to tell if the birthday enter is a validate one 0 = no 1 = yes
System.out.println ("Enter birthday(mm/dd/yyyy): ");
month = input.nextInt();
slash = input.next().charAt(0);
date = input.nextInt();
slash = input.next().charAt(0);
year = input.nextInt();
while (checker == 0)
{
if ( month < 1 || month > 12)
{
System.out.printf("Bad month: %d\n", month);
System.out.print("Re-enter birthday(mm/dd/yyyy): \n");
month = input.nextInt();
slash = input.next().charAt(0);
date = input.nextInt();
slash = input.next().charAt(0);
year = input.nextInt();
}
else
if ( slash != '/')
{
System.out.print ("Use forward slash");
System.out.print ("Re-enter birthday(mm/dd/yyyy): ");
month = input.nextInt();
slash = input.next().charAt(0);
date = input.nextInt();
slash = input.next().charAt(0);
year = input.nextInt();
import java.util.Scanner;
公共类命理学
{
公共静态void main(字符串参数[])
{
扫描仪输入=新扫描仪(System.in);
整月=0;
int date=0;
整年=0;
字符斜杠='/';
int checker=0;//用于指示生日输入是否为有效输入的标志0=no 1=yes
System.out.println(“输入生日(mm/dd/yyyy):”;
month=input.nextInt();
斜杠=输入.next().charAt(0);
date=input.nextInt();
斜杠=输入.next().charAt(0);
年份=input.nextInt();
while(checker==0)
{
如果(月<1 | |月>12)
{
System.out.printf(“坏月:%d\n”,月);
系统输出打印(“重新输入生日(mm/dd/yyyy):\n”);
month=input.nextInt();
斜杠=输入.next().charAt(0);
date=input.nextInt();
斜杠=输入.next().charAt(0);
年份=input.nextInt();
}
其他的
如果(斜杠!=“/”)
{
System.out.print(“使用正斜杠”);
System.out.print(“重新输入生日(mm/dd/yyyy):”;
month=input.nextInt();
斜杠=输入.next().charAt(0);
date=input.nextInt();
斜杠=输入.next().charAt(0);
年份=input.nextInt();
我有更多的代码来检查日期和年份,但是我现在的代码遇到了问题
我目前的问题是支票“/”不起作用
另外,当我运行这个循环时,没有办法退出它(这是一个无限循环)。这显然是一个问题,我在这方面工作了一个多星期,仍然无法解决。我一直在试图找到一种使用Int“checker”的方法以某种方式转到1,这样循环将退出。但是,这也没有运气。因此,我基本上应该放弃整个事情并重新开始吗?如果是这样,有人能给我指出正确的方向吗?你应该在循环中的某个地方设置
checker=1
,这样while循环中的条件将变为false,代码将被删除我将退出但是如果我在循环中设置int checker,它仍然无法帮助验证整个日期是否正确,是吗?我的意思是,无论是否输入验证日,检查程序都不会设置为1,它将与循环的其余部分一起执行。我不知道我是否完全理解了您的注释。但是checker
var除非显式编码,否则iable不会设置为1。您应该添加else
子句来执行该赋值。