完全な日付を把握し、それが実際の日付であることを確認するための支援が必要です。
これは私がこれまでに持っているものです。
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();
日付と年をチェックするコードが増えましたが、現在のコードで問題が発生しています。
現時点での私の問題は、チェック「/」が機能しないことです。
また、このループを実行すると、終了する方法がありません(無限ループです)。これに取り組んで1週間以上、私がまだ解決できないのは明らかに問題です。私は、Intの「チェッカー」を使用して、ループが終了するように何らかの方法で1に変換する方法を見つけようとしています。しかし、それを理解することもできません。それで、基本的に、私はこのすべてを廃棄して最初からやり直す必要がありますか?もしそうなら、誰かが私を正しい方向に向けることができますか?