为了账号安全,请及时绑定邮箱和手机立即绑定

如何使我的 if 语句再次运行,就像 if-else 语句运行一样?

如何使我的 if 语句再次运行,就像 if-else 语句运行一样?

守着一只汪 2023-09-06 16:03:38
目前,如果有人输入超出范围的日期,则会导致else语句运行,这一切都很好,但我希望if-else语句运行时,它会重新运行if语句。我真的不知道我应该做什么,所以任何帮助将不胜感激!import java.util.Scanner;public class Horoscope {    public Horoscope() {        Scanner sc = new Scanner(System.in);        String output = "Please enter a valid date";        int month;        int day;        System.out.println("What is your month of birth?");        month = sc.nextInt();        System.out.println("What is your day of birth?");        day = sc.nextInt();        if((month == 3 && day >= 20 && day <= 31) || (month == 4 && day >= 1 && day <= 19)) {            System.out.println("You are an Aries");        }        else if((month == 4 && day >= 20 && day <= 30) || (month == 5 && day >= 1 && day <= 20)) {            System.out.println("You are a Taurus");        }        else if((month == 5 && day >= 21 && day <= 31) || (month == 6 && day >= 1 && day <= 20)) {            System.out.println("You are a Gemini");        }        else if((month == 6 && day >= 21 && day <= 30) || (month == 7 && day >= 1 && day <= 22)) {            System.out.println("You are a Cancer");        }        else if((month == 7 && day >= 23 && day <= 31) || (month == 8 && day >= 1 && day <= 22)) {            System.out.println("You are a Leo");        }        else if((month == 8 && day >= 23 && day <= 31) || (month == 9 && day >= 1 && day <= 22)) {            System.out.println("You are a Virgo");        }        else if((month == 9 && day >= 23 && day <= 30) || (month == 10 && day >= 1 && day <= 22)) {            System.out.println("You are a Libra");        }        else if((month == 10 && day >= 23 && day <= 30) || (month == 11 && day >= 1 && day <= 21)) {            System.out.println("You are a Scorpio");        }        else if((month == 11 && day >= 22 && day <= 31) || (month == 12 && day >= 1 && day <= 21)) {            System.out.println("You are a Sagittarius");        }        }    }}
查看完整描述

2 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

import java.util.Scanner;


public class test {

    public test() {

        Scanner sc = new Scanner(System.in);

        String output = "Please enter a valid date";

        int month;

        int day;

        int k = 0;

// you can use do while loop. write some flag logic like I created k variable and it will be checked in while block

        do {

            System.out.println("What is your month of birth?");

            month = sc.nextInt();

            System.out.println("What is your day of birth?");

            day = sc.nextInt();


            if ((month == 3 && day >= 20 && day <= 31) || (month == 4 && day >= 1 && day <= 19)) {

                System.out.println("You are an Aries");

            } else if ((month == 4 && day >= 20 && day <= 30) || (month == 5 && day >= 1 && day <= 20)) {

                System.out.println("You are a Taurus");

            } else if ((month == 5 && day >= 21 && day <= 31) || (month == 6 && day >= 1 && day <= 20)) {

                System.out.println("You are a Gemini");

            } else if ((month == 6 && day >= 21 && day <= 30) || (month == 7 && day >= 1 && day <= 22)) {

                System.out.println("You are a Cancer");

            } else if ((month == 7 && day >= 23 && day <= 31) || (month == 8 && day >= 1 && day <= 22)) {

                System.out.println("You are a Leo");

            } else if ((month == 8 && day >= 23 && day <= 31) || (month == 9 && day >= 1 && day <= 22)) {

                System.out.println("You are a Virgo");

            } else if ((month == 9 && day >= 23 && day <= 30) || (month == 10 && day >= 1 && day <= 22)) {

                System.out.println("You are a Libra");

            } else if ((month == 10 && day >= 23 && day <= 30) || (month == 11 && day >= 1 && day <= 21)) {

                System.out.println("You are a Scorpio");

            } else if ((month == 11 && day >= 22 && day <= 31) || (month == 12 && day >= 1 && day <= 21)) {

                System.out.println("You are a Sagittarius");

            } else if ((month == 12 && day >= 22 && day <= 31) || (month == 1 && day >= 1 && day <= 19)) {

                System.out.println("You are a Capricorn");

            } else if ((month == 1 && day >= 20 && day <= 31) || (month == 2 && day >= 1 && day <= 18)) {

                System.out.println("You are an Aquarius");

            } else if ((month == 2 && day >= 19 && day <= 29) || (month == 3 && day >= 1 && day <= 20)) {

                System.out.println("You are a Pisces");

            } else {

                System.out.println(output);

                k = 1;

            }

        } while (k == 1);


    }

}


查看完整回答
反对 回复 2023-09-06
?
炎炎设计

TA贡献1808条经验 获得超4个赞

解决了!我创建了一个名为 k 的 int 并将其设置为 1,并在它等于 1 时运行 do,如果它产生 true if 语句,则返回 0 并结束代码。



查看完整回答
反对 回复 2023-09-06
  • 2 回答
  • 0 关注
  • 84 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信