Java应用程序if/case推荐
我正在为一门Java课程编写一个应用程序。我是一个完全的初学者,刚刚开始学习我从课程和网络中学到的材料。应用程序正在显示某些行为,我不确定是什么导致了它。该应用程序基于GUI,并根据用户输入进行计算。 对于action listener部分,我有一组If语句,例如: “如果这个按钮可以这样做 如果此按钮执行此操作“ 像那样排成一行。应用程序似乎正在运行所有if语句,而不是运行与按下的按钮对应的语句 对于这类事情,使用case/switch结构会更好吗Java应用程序if/case推荐,java,switch-statement,if-statement,Java,Switch Statement,If Statement,我正在为一门Java课程编写一个应用程序。我是一个完全的初学者,刚刚开始学习我从课程和网络中学到的材料。应用程序正在显示某些行为,我不确定是什么导致了它。该应用程序基于GUI,并根据用户输入进行计算。 对于action listener部分,我有一组If语句,例如: “如果这个按钮可以这样做 如果此按钮执行此操作“ 像那样排成一行。应用程序似乎正在运行所有if语句,而不是运行与按下的按钮对应的语句 对于这类事情,使用case/switch结构会更好吗 我可以发布我的代码,如果必要的话,我是这个网
我可以发布我的代码,如果必要的话,我是这个网站的新手,不确定这件事是否可以接受 您可能不应该有一个单独的操作侦听器——为每个控件创建一个单独的操作侦听器有助于保持代码的可读性 但是,如果控件共享大量代码(If语句之前或之后的内容),那么这样做可能有意义。在这种情况下,应该是if/elseif 此外,使侦听器具有完整的类(而不是匿名内部类)也有助于重用代码(每个if语句中的内容都包含在每个子类中)。这可能超出了到目前为止你所学到的 编辑:(更直接地回答您的实际问题) 就您的问题而言,除非drs9222的回答说您在if末尾使用分号是正确的,或者您的if语句测试了错误的东西,否则if不应该全部执行
您可能只是发布您正在测试的内容,但需要使用==或.equals将已知的“Button”对象与event.getSource()进行比较。因为您要比较的每个按钮对象都不同,所以应该只执行一个。您可能不应该有一个单独的操作侦听器——为每个控件创建一个单独的操作侦听器有助于使代码更具可读性 但是,如果控件共享大量代码(If语句之前或之后的内容),那么这样做可能有意义。在这种情况下,应该是if/elseif 此外,使侦听器具有完整的类(而不是匿名内部类)也有助于重用代码(每个if语句中的内容都包含在每个子类中)。这可能超出了到目前为止你所学到的 编辑:(更直接地回答您的实际问题) 就您的问题而言,除非drs9222的回答说您在if末尾使用分号是正确的,或者您的if语句测试了错误的东西,否则if不应该全部执行
您可能只是发布您正在测试的内容,但需要使用==或.equals将已知的“Button”对象与event.getSource()进行比较。由于您要比较的每个按钮对象都不同,因此应该只执行一个按钮对象。没有看到代码,我不能确定,但我通常只使用
if
,而不使用,否则如果
-如果满足了我的几个条件,那么所有关联的代码都会运行。如果只想运行第一个匹配,请使用If-else
,以确保以下语句都不会执行。在没有看到代码的情况下,我不能确定,但我通常只使用If
而不使用else If
-如果满足我的几个条件,然后运行所有关联的代码。如果您只想运行第一个匹配,请使用If-else
确保以下语句都不会执行。在我看到您的代码之前,我不得不猜测,但考虑到您承认的新特性,您可能会这样编写If语句
if (condition);
{
...
}
if (condition)
{
...
}
而不是像这样
if (condition);
{
...
}
if (condition)
{
...
}
在我看到你的代码之前,我不得不猜测,但是考虑到你承认的新特性,你可能会这样写你的if语句
if (condition);
{
...
}
if (condition)
{
...
}
而不是像这样
if (condition);
{
...
}
if (condition)
{
...
}
你在用其他的如果吗?如果没有,你应该这样做。代码可以在pastebin看到。如果可以在消息中发布代码,我会这样做。Thanks@AlbertoPL注意。我使用的是just:if(){}if(){}我有一种被人皱眉的感觉;)我关于该代码的其他一些技巧:不要随机导入*(从特定包中导入*通常很有用,尤其是
javax.swing
,但通常没有帮助)。很少从框架延伸。尽可能不要扩展/实施一次以上。制表符是邪恶的(四个空格)。除非必要,否则不要将局部变量设置为字段。不要使用C样式的数组;转到Java:int[]x
。对于声明(仅限),您可能会错过新类型[]
。注意未经检查的异常(在Double.valueOf
中进行分析),因为它们表明API不是为用户输入而设计的。您使用的是else ifs吗?如果没有,你应该这样做。代码可以在pastebin看到。如果可以在消息中发布代码,我会这样做。Thanks@AlbertoPL注意。我使用的是just:if(){}if(){}我有一种被人皱眉的感觉;)我关于该代码的其他一些技巧:不要随机导入*(从特定包中导入*通常很有用,尤其是javax.swing
,但通常没有帮助)。很少从框架延伸。尽可能不要扩展/实施一次以上。制表符是邪恶的(四个空格)。除非必要,否则不要将局部变量设置为字段。不要使用C样式的数组;转到Java:int[]x
。对于声明(仅限),您可能会错过新类型[]
。注意未检查的异常(在Double.valueOf
中解析),因为它们表明API不是为用户输入而设计的。代码可以在这里找到。下拉菜单有3个if语句,每个按钮都有自己的if语句,如果您看到代码,可能会更有意义。感谢您迄今为止的见解。代码可以是f