use*_*145 0 java if-statement infinite-loop switch-statement
我是Java的新手.我正在编写一个陷入无限循环的程序,它在控制台中显示但不在Applet中.这是一个日历,需要在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));
}
Run Code Online (Sandbox Code Playgroud)
在控制台中,它无限重复10月28日.在Applet中它显示"10月28日"在GLabel
唯一的第一个位置(它不执行+ (100*date)
).如果有人能够解释发生了什么并建议一种方法来解决它,我将非常感激!
你;
在if
语句结尾处加了分号.
if (date == 32) // Remove ;
{
Run Code Online (Sandbox Code Playgroud)
由于分号结束if
,不会进入if
阻止,所以你date
不会重新发起1
.