java - 控制台中出现奇怪的无限循环,但 Applet 中却没有 - Java

标签 java if-statement switch-statement infinite-loop

我是 Java 的新手。 我正在编写一个程序,该程序陷入了无限循环,该循环显示在控制台中,但不显示在小程序中。这是一个日历,需要将月份和日期从 10 月 31 日更改为 11 月 1 日,并将其显示在某个位置。我很确定 if 语句是错误的,但我在我的书中找不到任何帮助:( 这是代码:

            int date = 28;
            String currentMonth = "October";
            String nextMonth = "November";
            String dateNumber = "28th October";

            for (date = 28; date <= 32; date++)
            {
                if (date == 32);
                {
                    currentMonth = nextMonth;
                    date = 1; 
                }


                switch (date)
                {
                case 28: dateNumber = "28th October"; break;
                case 29: dateNumber = "29th October"; break;
                case 30: dateNumber = "30th October"; break;
                case 31: dateNumber = "31st October"; break;
                case 32: dateNumber = "1st November"; break;
                default: println (dateNumber); break;
                }

                GLabel label = new GLabel(dateNumber);
                label.setFont ("Ariel-13");
                label.setColor(Color.BLUE);
                add (label, 50, 001 + (100*date));
            }

在控制台中,它无限重复 10 月 28 日。在 Applet 中,它仅在 GLabel 的第一个位置显示“28th October”(它不执行 + (100*date))。 如果有人能解释发生了什么并提出解决方法,我将不胜感激!

最佳答案

您将分号 ; 放在 if 语句的末尾。

if (date == 32)  // Remove ;
{

由于if末尾有分号,不会进入if block ,因此您的日期不会重新启动1

关于java - 控制台中出现奇怪的无限循环,但 Applet 中却没有 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20372020/

相关文章:

r - 分组执行 ifelse 的更好方法

javascript - 如何同时运行两个具有不同功能的案例?

c++ - 在 switch 语句中使用 vector 时出现 "Jump to case label"错误。

java - 在每个 switch-case 之后循环回到开始

java - 如何获取在 SSL 握手中生成的对称 key ?

JavaFX 多线程

java - 在android中每2小时调用一次方法的最佳方法?

java - 如何按空格拆分字符串但转义引号内的空格(在 java 中)?

Powershell 在 If 语句中尝试使用 -and 时出错

matlab - 在循环外的条件下每 n 次迭代显示变量值