若输入的数字不在0~100范围内的,则提示重新输入,应给怎么写?
为什么不可以这样写:else(x<0||x>100)
System.out.println("请重新输入!");
不应该是if吗,亲
把前面的if语句也贴出来,才能比较清楚你的问题所在
import java.io.*;
public class J209 {
public static void main(String[] args) throws IOException
{
// TODO 自动生成的方法存根
int x ;
String str;
BufferedReader buf;
boolean isAllDigit;
do{
System.out.print("请输入学生成绩(0-100)之间:");
buf=new BufferedReader(new InputStreamReader(System.in));
str=buf.readLine();
//增加判断str是否包含非数字,如果不是全数字,重新输入
isAllDigit = isNumeric(str); //函数调用,java里叫方法调用
}while(!isAllDigit);
x=Integer.parseInt(str); //用户输入的字符串转换成数字
if(x>=85)
System.out.println("成绩优秀!");
else if(x>=75)
System.out.println("成绩良好!");
else if(x>60)
System.out.println("成绩及格!");
else if(x<=60)
System.out.println("成绩不及格!");
}
//定义isNumeric,用来判断一个字符串是否全数字
public static boolean isNumeric(String str){
for (int i = 0; i < str.length(); i++){
System.out.println(str.charAt(i));
if (!Character.isDigit(str.charAt(i))){
return false;
}
}
return true;
}
}
@恨极在天涯: 写成这样
else(x<0||x>100)
System.out.println("请重新输入!");的时候你得确保你输入的x值是数字。判断是否为全为数字,建议你用正则表达式去判断,那样简洁明了。
这样?
else if(x<0||x>100)
System.out.println("请重新输入!");
可以这样不??
!(x>0 && x<100)
包含0或者100 就加一个等号就行