标题:[求助]switch 语句为什么不能用?
取消只看楼主
★王者至尊★
Rank: 1
等 级:新手上路
帖 子:528
专家分:0
注 册:2006-3-28
 问题点数:0 回复次数:2 
[求助]switch 语句为什么不能用?
以下代码实现简易计算器 ,为什么使用中间的switch语句(被我注释了)编译不能通过 ,而换用 if嵌套 可以实现
请教..........................................
----------------------------------------------------------------------------------------------------------------

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Minicalc{
public static void main(String[] args){
JFrame frame=new JFrame("简易计算器");
Container pane=frame.getContentPane();
JTextField firstnumber=new JTextField(10);
JTextField secondnumber=new JTextField(10);
JTextField result=new JTextField(10);
JButton addButton=new JButton("+");
JButton subButton=new JButton("-");
JButton mulButton=new JButton("*");
JButton divButton=new JButton("/");
pane.setLayout(new GridLayout(5,2));
pane.add(new JLabel("Enter a number"));
pane.add(firstnumber);
pane.add(new JLabel("Enter a number"));
pane.add(secondnumber);
pane.add(new JLabel("Result"));
pane.add(result);
pane.add(addButton);
pane.add(subButton);
pane.add(mulButton);
pane.add(divButton);

DoMath listener=new DoMath(firstnumber,secondnumber,result);
addButton.addActionListener(listener);
subButton.addActionListener(listener);
mulButton.addActionListener(listener);
divButton.addActionListener(listener);
frame.pack();
frame.show();

}

}
class DoMath implements ActionListener{
private JTextField inputone,inputtwo,output;
//private JButton F;
DoMath(JTextField first,JTextField second,JTextField result){
inputone=first;
inputtwo=second;
output=result;
}
public void actionPerformed(ActionEvent e){
double first,second;
first=Double.parseDouble(inputone.getText().trim());
second=Double.parseDouble(inputtwo.getText().trim());


/* switch(e.getActionCommand().equals(F)){

case '+' :output.setText(String.valueOf(first+second));break;
case '-' :output.setText(String.valueOf(first-second));break;
case '*' :output.setText(String.valueOf(first*second));break;
case '/' :output.setText(String.valueOf(first/second));break;
} */


if (e.getActionCommand().equals("+"))
output.setText(String.valueOf(first+second));
else { if (e.getActionCommand().equals("-"))
output.setText(String.valueOf(first-second));
else {if (e.getActionCommand().equals("*"))
output.setText(String.valueOf(first*second)) ;
else
output.setText(String.valueOf(first/second));
}
}
}
}
--------------------------------------------------------------------------------------------------------------------------
搜索更多相关主题的帖子: switch 语句 
2006-04-01 23:07
★王者至尊★
Rank: 1
等 级:新手上路
帖 子:528
专家分:0
注 册:2006-3-28
得分:0 
谢谢版主的回答,但是编译还是有问题:
------------------------------------
Minicalc.java:50: incompatible types
found : java.lang.String
required: int
switch(e.getActionCommand()){
^
1 error
------------------------------------
再求指教.

------Java 爱好者,论坛小混混,学习中------
2006-04-02 13:02
★王者至尊★
Rank: 1
等 级:新手上路
帖 子:528
专家分:0
注 册:2006-3-28
得分:0 

还是不行...........
是不是这种情况压根就不能用 switch语句 实现
---------------------------------------------
char F[]=(e.getActionCommand())toCharArray();
switch(F){
...........................
}
---------------------------------------------
这样不行


------Java 爱好者,论坛小混混,学习中------
2006-04-02 14:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-54485-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.077719 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved