0

完全な日付を把握し、それが実際の日付であることを確認するための支援が必要です。

これは私がこれまでに持っているものです。

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に変換する方法を見つけようとしています。しかし、それを理解することもできません。それで、基本的に、私はこのすべてを廃棄して最初からやり直す必要がありますか?もしそうなら、誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

0

checker = 1whileループの条件が偽になり、コードが終了するように、ループ内のどこかに設定する必要があります

于 2012-10-19T01:43:49.597 に答える