if(button.getText().equals("Hello")){
button.setText("Hello World");
}
else if(button.getText().equals("Hello World")){
button.setText("Hello");
}
上面的代码有效,而第二个代码没有:
if(button.getText().equals("Hello")){
button.setText("Hello World");
}
if(button.getText().equals("Hello World")){
button.setText("Hello");
}
这个直接进入第二个if块
我不明白它与第一个有什么不同,它应该先到第一个if块,但它只是跳过它
我希望你能解释一下这个
这是完整的代码:
package javaapplication4;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
public class JavaApplication4 implements ActionListener{
JFrame frame;
JButton button;
public static void main(String[] args){
JavaApplication4 gui = new JavaApplication4();
gui.go();
}
public void go() {
frame = new JFrame();
button = new JButton("Hello");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200,300);
frame.setVisible(true);
frame.getContentPane().add(button);
button.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent ev){
if(button.getText().equals("Hello")){
button.setText("Hello World");
}
if(button.getText().equals("Hello World")){
button.setText("Hello");
}
}
}
答案 0 :(得分:3)
解释。第一个:
if(button.getText().equals("Hello")){ //let's say it's true, so the text is "Hello"
button.setText("Hello World"); //now you change the text to "Hello World"
}
else if(button.getText().equals("Hello World")){ //this line is not executed because of "else" keyword, it means that it will be checked ONLY if the first statement was false
button.setText("Hello"); //this line is not executed
}
第二个:
if(button.getText().equals("Hello")){ //let's say it's true, so the text is "Hello"
button.setText("Hello World"); //now the text is "Hello World"
}
if(button.getText().equals("Hello World")){ //it's true because you changed the text
button.setText("Hello"); //so this line changes text again, back to "Hello"
}
答案 1 :(得分:1)
第一个它将在第一个之后停止因为text = Hello。它不会进入else if语句。
但是对于第二个,它也将检查第二个if。 首先,它检查text = Hello - >这是真的,所以它会在Hello世界中发生变化。 之后,第二个if将检查text = Hello world,它是否为。
答案 2 :(得分:0)
你在第二个问题中的问题是两个块都被执行了,而else语句阻止了这个。
首先,文本等于" Hello"。在第一个if语句之后,它被更改为" Hello World"。
然后转到第二个语句,现在文本是" Hello World",它也执行此语句,将文本更改回" Hello"。
在第一个示例中没有发生这种情况,因为else if
表示只检查前面的if语句是否给出错误结果时才会检查条件。