java 从控制台输入一个数字 ,如果这个数字不符合条件怎么能让用户继续输入并执行程序啊

如题所述

方法多了去了,定义个int a,给个while循环,循环的判断条件是 a不符合的条件 (意思是只要a不符合条件,就无限制的执行循环体里的内容)
然后循环体里,你给个控制台输入就好。

或者用goto
输入的数字如果符合规则,跳到符合规则后执行的,如果不符合,跳到执行输入前。

这是思路,具体那里不会的,再问吧追问

java里面 没有 goto呀
int res = 0;
//进行一个判断 如果用户输入的数字不在1~9之内给一个提示
if(a9){
System.out.println("您好,输入的数字应该在1~9之间");
}
这里 输入的信息错了之后程序就 不在执行 我想从新调用这个方法

追答

while。。。。if判断根本没有循环功能,你用if肯定不会重新调用了。

代码给你写出来了,自己调试下吧:
Scanner in=new Scanner(System.in); // 控制台输入流
int a = 0; // 捕获你输入的数字
while ( a 9 ){ // 如果输入的数字不在这个范围内,就一直循环
System.out.println("请输入0-9的之间的数字:");
a = in.nextInt();
}
System.out.println("输入正确,退出"); // 输入正确后退出

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-15
import java.util.Arrays;
import java.util.Scanner;

public class Hello {
public static void main(String[] args) {
//1.
//2.
Scanner s = new Scanner(System.in);
System.out.println("请输入评委数目:");
int judgeNumber = s.nextInt();

double score[] = new double[judgeNumber];
int judgesId[] = new int[judgeNumber]; 
for(int i = 0; i<score.length ; i++){
judgesId[i] = i+1;

}
for(int i =0;i<judgesId.length;i++) {
System.out.println("请"+(i+1)+"号评委打分,请输入0-10以内的数:");

double temp = s.nextDouble();
if(temp>0 && temp<10){
score[i] = temp;

}else{
while(true){
System.out.println("不符合打分规范,请重新输入:");
score[i] = s.nextDouble();
if(score[i]>0 && score[i]<10){
break;

}
}
}


}
double max = score[0];
int maxScore = 0;
for(int i = 0;i<score.length;i++){
if(max<score[i]){
max = score[i];
maxScore = i;
}else{
continue;
}
}
System.out.println("去掉一个最高分,第"+(maxScore+1)+"位评委打分:"+max);

double min = score[0];
int minScore = 0;
for(int i = 0;i<score.length;i++) {
if(score[i]<min) {
min=score[i];
minScore = i;
}else{
continue;
}
}

System.out.println("去掉一个最低分,第"+(minScore+1)+"位评委打分:"+min);
//Arrays.sort(score);//排序数组
//score = Arrays.copyOfRange(score, 1, score.length-1);//去值后数组

int sum = 0;
for(int i = 0;i<score.length;i++) {
if(i == maxScore || i == minScore){
continue;
}else{
sum += score[i];
}

}
System.out.println("平均得分:"+sum/(score.length-2));



}

}

相似回答