为什么我的switch语句在GUI Netbeans中不起作用?

时间:2019-07-13 21:19:03

标签: java user-interface

我正在处理一个任务,该任务的飓风类别应介于1-5之间,并输出该特定类别的风速信息。要求是:在switch语句中包括一个默认语句。

我已经尝试了几乎所有内容,但仍然无法成功运行该应用程序。我很沮丧,因为这项作业定于今天晚上完成,而且我什么都没有得到:(

private void btnSelectActionPerformed(java.awt.event.ActionEvent evt) {                                          
 int category=6;
 String categoryString = this.txtInput.getText();
 switch (category){
 case 1: categoryString = "1";
    this.txtOutput.setText ("Windspeeds for Category 1 are:  74-950 mph or 
64-82 kt or 119-153 km/h");
    break;
 case 2: categoryString = "2";
    this.txtOutput.setText ("Windspeeds for Category 2 are:  96-110 mph or 
83-95 kt or 154-177 km/h");
    break;
 case 3: categoryString = "3";
    this.txtOutput.setText ("Windspeeds for Category 3 are:  111-130 mph or 
96-113 kt or 178-209 km/h");
    break;
 case 4: categoryString = "4";
    this.txtOutput.setText ("Windspeeds for Category 4 are:  131-155 mph or 
114-135 kt or 210-249 km/h");
    break;
 case 5: categoryString = "5";
    this.txtOutput.setText ("Windspeeds for Category 5 are:  Greater than 
155 mph or 135 kt or 249 km/h");
    break;
 default:
    this.lblWindspeedLabel.setText("Please Choose Category from 1 - 5");

this.txtOutput.setText(""+ categoryString);
        }
    }                               

最终输出应该显示类别的风速信息,但它会一直说默认值...

2 个答案:

答案 0 :(得分:0)

您将类别设置为6,然后切换该值。但是该值始终为6,因此始终调用默认块。 您应该从某处获取类别值(不知道您的应用程序应该做什么。)。

答案 1 :(得分:0)

之所以发生这种情况,是因为您将category作为整数类型的switch参数,并在类别为string的switch语句中使用categoryString作为测试用例。这就是为什么没有通过任何案例,并且程序正在跳至默认案例的原因。试试这个代码。应该可以。

    private void btnSelectActionPerformed(java.awt.event.ActionEvent evt) {                                          
int category=6;
String categoryString = this.txtInput.getText();
switch (categoryString){
case "1";
this.txtOutput.setText ("Windspeeds for Category 1 are:  74-950 mph or 
64-82 kt or 119-153 km/h");
break;
case "2";
this.txtOutput.setText ("Windspeeds for Category 2 are:  96-110 mph or 
83-95 kt or 154-177 km/h");
break;
case "3";
this.txtOutput.setText ("Windspeeds for Category 3 are:  111-130 mph or 
96-113 kt or 178-209 km/h");
break;
case "4";
this.txtOutput.setText ("Windspeeds for Category 4 are:  131-155 mph or 
114-135 kt or 210-249 km/h");
break;
case "5";
this.txtOutput.setText ("Windspeeds for Category 5 are:  Greater than 
155 mph or 135 kt or 249 km/h");
break;
default:
this.lblWindspeedLabel.setText("Please Choose Category from 1 - 5");

this.txtOutput.setText(""+ categoryString);
}
}