首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果条件总是返回true (Java)

如果条件总是返回true (Java)
EN

Stack Overflow用户
提问于 2015-03-07 18:23:11
回答 3查看 549关注 0票数 1

我正在尝试实现一个日期系统,它不可避免地显示明天、日期、月份和年份。

我遇到的问题是,if语句中的一个总是返回true,而后面的语句总是返回false。

下面是我代码的一部分:

代码语言:javascript
复制
public class dateVerification {

    int tomorrowDay = 0;
    int tomorrowMonth = 0;
    int tomorrowYear = 0;
    int day = 0;
    int month = 0;
    int year = 0;

    public void date() {

        Scanner myScanner = new Scanner(System.in);
        System.out.println("Enter the day");
        day = myScanner.nextInt();
        System.out.println("Enter the month");
        month = myScanner.nextInt();
        System.out.println("Enter the year");
        year = myScanner.nextInt();

        switch (month) {
            case 1:
                if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10) {
                    if (day < 31) {
                        tomorrowDay = day + 1;
                    } else {
                        tomorrowDay = 1;
                        tomorrowMonth = month + 1;
                    }
                }
                break;

返回true的行是:

代码语言:javascript
复制
 if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10)

其他一切都是假的,即我的案例2陈述

代码语言:javascript
复制
if (month == 4 || month == 6 || month == 9 || month == 11)

有人能解释一下这件事吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-07 18:26:23

您正在测试month字段。

在第1种情况下,月份总是1。

代码语言:javascript
复制
 switch (month) {
            case 1:  //mount = 1 !!
                if (month == 1 ||...
     //
 }
票数 2
EN

Stack Overflow用户

发布于 2015-03-07 18:28:27

在java获得明天的最简单的方法是

代码语言:javascript
复制
public Date nextDate(Date currentDate) {
    Calendar c = Calendar.getInstance(); 
    c.setTime(currentDate); 
    c.add(Calendar.DATE, 1);
    return c.getTime();
}
票数 0
EN

Stack Overflow用户

发布于 2015-03-07 18:29:33

代码中的问题出现在以下部分:

代码语言:javascript
复制
 } else {
                        tomorrowDay = 1;
                        tomorrowMonth = month + 1;

因为你想在31天的时候增加月份,所以你应该把它改为

代码语言:javascript
复制
 } else {
                        tomorrowDay = 1;
                        month = month + 1;

对于要增加和退出循环的月份,请不要离开它,因为月份(这就是您正在检查的月份)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28918395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档