我的java小程序分配有问题。出于某种我无法理解的原因,每当我选中复选框时,我的所有if语句都会立即触发。程序应该更新总价,并在每次按下方框时通知用户。我们必须使用复选框,而不是单选按钮或JCheckBox,并且程序必须编写为小程序。这里是我的代码链接。
// Classes
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
@SuppressWarnings("serial")
public class ReasonableComputersChristiansen extends Applet implements ItemListener
{
// Variables
Image logo;
double basePrice;
Label companyLabel = new Label("Reasonable Computers");
Label instructionLabel = new Label("Please select your desired peripherals from the list below");
Label outputLabel = new Label("TOTAL PRICE: ");
Checkbox printerBox = new Checkbox("Ink Waster 9000");
Checkbox monitorBox = new Checkbox("EvilCorp Monitor");
Checkbox keyboardBox = new Checkbox("Clickity-Clackity Keyboard");
Checkbox mouseBox = new Checkbox("Worst-Aim Laser Gaming Mouse");
Checkbox joystickBox = new Checkbox("Crash and Burn X-2 Joystick");
Checkbox webcamBox = new Checkbox("Not-So-Anonymous Webcam");
// Components
public void init()
{
add(companyLabel);
add(instructionLabel);
add(printerBox);
printerBox.addItemListener(this);
add(monitorBox);
monitorBox.addItemListener(this);
add(keyboardBox);
keyboardBox.addItemListener(this);
add(mouseBox);
mouseBox.addItemListener(this);
add(joystickBox);
joystickBox.addItemListener(this);
add(webcamBox);
webcamBox.addItemListener(this);
add(outputLabel);
logo = getImage(getDocumentBase(), "logo.gif");
}
// Actions
public void itemStateChanged(ItemEvent e)
{
basePrice = 575.00;
if (printerBox.getState());
{
basePrice += 69.99;
System.out.println("Printer added!");
}
if (monitorBox.getState());
{
basePrice += 125.49;
System.out.println("Monitor added!");
}
if (keyboardBox.getState());
{
basePrice += 55.59;
System.out.println("Keyboard added!");
}
if (mouseBox.getState());
{
basePrice += 19.99;
System.out.println("Mouse added!");
}
if (joystickBox.getState());
{
basePrice += 224.97;
System.out.println("Joystick added!");
}
if (webcamBox.getState());
{
basePrice += 99.19;
System.out.println("Webcam added!");
}
}
// Output
public void output()
{
outputLabel.setText("TOTAL PRICE: $" + (basePrice));
}
}
您的if
语句后面不应该有分号。
更正代码:
public void itemStateChanged(ItemEvent e)
{
basePrice = 575.00;
if (printerBox.getState())
{
basePrice += 69.99;
System.out.println("Printer added!");
}
if (monitorBox.getState())
{
basePrice += 125.49;
System.out.println("Monitor added!");
}
if (keyboardBox.getState())
{
basePrice += 55.59;
System.out.println("Keyboard added!");
}
if (mouseBox.getState())
{
basePrice += 19.99;
System.out.println("Mouse added!");
}
if (joystickBox.getState())
{
basePrice += 224.97;
System.out.println("Joystick added!");
}
if (webcamBox.getState())
{
basePrice += 99.19;
System.out.println("Webcam added!");
}
}
分号结束您的if
语句,因此它们实际上不会影响代码运行的内容。
等等,那么大括号会不会导致语法错误呢?
没有。就Java而言,您可以仅为组织使用大括号,它们不会引发语法错误。在大多数情况下,你应该这样做吗?不,但你能做到吗?从技术上讲,是的。
(如安迪·特纳所述,“在大多数情况下”的注意事项是,当您需要有意将变量置于特定范围内时)
我制作了这个简单的GUI程序,它可以计算特定字符序列的元音和辅音。计数器还可以,但是我对if-else语句有一个问题,当那个字符既不是元音也不是辅音时,我必须显示一条消息...代码如下: 它看起来是这样的: 我输入了一个没有任何特殊字符或数字的字符“序列”。但它仍然显示消息,其中它有元音和辅音以外的其他字符。if-else语句有问题吗?感谢您的帮助:)
if语句以结尾,这是我的错误,被打印出来,即使很明显这两个值都为null。有人能解释为什么吗?
可能重复:if语句末尾有分号 我在编程时,在代码中发现了一个bug,这是因为“if”语句后面有一个分号,它的长方体“{xxx}”被执行时就好像它有自己的作用域一样--所以一切都会被编译。 这回避了一个问题,为什么是: Java中的一个可能的语句,它似乎是一行无用的代码,可能会产生很多bug等等。
我有一个脚本,当只有某些工作表打开时,我想在打开时运行它,但在绑定脚本的电子表格中没有其他工作表。所需的所有工作表的名称都为“代理报告-‘NameOfAgent’”。每个代理报告中还包含某些单元格,可用于IF条件语句。从逻辑上讲,我希望: 如果活动工作表的名称包含“代理报告”- 或者,如果处于活动工作表单元格A2==“角色”- 谢谢你的帮助。
首先,我发现了另外两条有类似问题的线索。问题在于,他们没有为字符串使用正确的等号,也没有为他们的特定问题正确设置if语句的格式。 在我的任务中,我需要创建一个名为“猪”的游戏,玩家与计算机对决,在掷骰子时先获得100分。如果玩家在一个回合中掷1,他们不会得到额外的分数。如果玩家掷两个1,那么他们将失去所有分数。我还没有对电脑的回合进行编码,只是专注于玩家。请告诉我我做错了什么。提前非常感谢。 我的
问题内容: 如果MySQL触发器中有多个if语句,那么最佳方法是什么? 目前,我的SQL如下所示: 乍看之下,这似乎行得通。但是,我注意到,当多个(else)if语句为true时,仅第一个语句被执行(例如,就像在PHP中一样)。 我如何只使用多个if,而不必是elseif,以便执行多于1条语句?用相同的动作创建多个触发器是不可能的,至少phpMyAdmin所示。将多个if置于一个触发器中会导致错误