java程序

java中switch
case语句范围太大了要怎么处理,比如case要0~100的但当中就分5个段左右的要怎么处理
范围已经除过了但数字不好还要100多个怎么用Case啊if我会

第1个回答  2011-09-23
通过除法即可
比如要分5个段
int score=0;
score=new Scanner(System.int).nextInt();
switch(score/20){
case 0:
//0-19范围
break;
case 1:
//20-39范围;
break;
case 2:
//40-59范围
break;
...
}
不过一般只要是范围的都不建议用这个,
一般像这种范围。也叫分区的,一般通过If-else if -else更好

没看明白楼主这句话是什么意思??????要分五个段,就是分了吗???
一百个数,难道你用if .else if就能省略掉了????
不明白楼主要明白什么意思
第2个回答  2011-09-24
总的两个Java源文件。基本上是实现了你要求的功能。
由于我也是Java的初学者,不足的地方请多多指点。谢谢!
WindowsText.java //第一个java程序
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class WindowsText extends JFrame implements ActionListener{
JTextField textInput,textShow;//文本框
JLabel label;//标签
JButton button;//按钮
PoliceListen listener;
public WindowsText(String s){
super(s);
init();
setBounds(100,100,230,150);//设置窗体的大小和位置
setVisible(true);//设置窗体是否可见
setResizable(false);//设置窗体是否可调整大小
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init(){
setLayout(new FlowLayout());
textInput=new JTextField(15);
textShow=new JTextField(15);
label=new JLabel("输完数后请按回车");
button=new JButton("不按回车的话请点我吧");
textShow.setEditable(false);//设置显示的文本框为只读
listener=new PoliceListen();
listener.setTextField(textShow);
textInput.addActionListener(listener);
button.addActionListener(this);
add(textInput);
add(label);
add(button);
add(textShow);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new WindowsText("Java小程序");
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String str=textInput.getText();
if(e.getSource()==button){
textShow.setText(str);
}
}
}

PoliceListen.java //第二个java程序
import java.awt.event.*;
import javax.swing.*;
public class PoliceListen implements ActionListener {
JTextField text;
public void setTextField(JTextField text){
this.text=text;
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JTextField textSource=(JTextField)e.getSource();
String str=textSource.getText();
if(!str.isEmpty()){
text.setText(str);
}
}
}

第3个回答  2011-09-23
让switch的参数除以你的分段基数,比如switch(i/20) 这样 就可以了吧
这样就没必要用switch了 一溜if得了
第4个回答  2011-09-23
先用if把 0-100的分段给分好,就只case5次了。
if(i<=25 ) a=1;
else if (i<=50 ) a=2;
else if(1<=75 ) a=3;
else a=4;
.....
第5个回答  2011-09-23
取范围的话 最好用if-else
不过当然也可以这样用~
switch(a/20)
{
case 5:
//100
break;
case 4:
//80-99
break;
...
}追问

出过了数字不好出啊除下来还有100个

追答

啊?什么意思。。。

追问

我已经把范围是800到1300一组
1300到2800一组
2800到5800一组
5800到28000一组
280000以上一组这用case怎么做啊

追答

这样啊。。。貌似还是要用到if-else
先用if(i>800&&i1300&&i<2800) num=1;
然后再拿num进行switch-case
如果我做就是这样了。。。不知道对不对的。。。

追问

唉那个老师就要我们用switch和if的都做一个如果switch还是这么做的话看上去有点重复啊

追答

嗯。。。帮你查了一下~ 都说大范围的话 先用if-else判断一次~
或者你可以找你老师问问 看有什么更好的方法。。。
到时候顺便发上来~ 方便后人。。。

本回答被提问者采纳
相似回答