A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wuzeshui 中级黑马   /  2016-1-12 21:38  /  767 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.io.IOException;
import java.util.Scanner;

public class Four {
public static void main(String[] args) {
while (true) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个分数(0-100):");
double a = input.nextDouble();
try {
if (a>100 || a<0)
                //用户输入负数或大于100的时候,提醒用户重新输入。
throw new IOException("请重新输入");
else
grade(a);
break;
}

catch (IOException e) {
               //抓取上面提示的错误,如果上面报错,证明用户输入格式不符合,这里实现重新输入。
System.out.println("错误,请从新输入:");
}
}
}

public static void grade(double a) {
String str = null;

while(a>100 || a<0) {
System.out.println("输入错误,请重新输入:");

}

if(a>=0 && a<=100)
str = (a>=90)? "分属于A级" :(a>=60)? "分属于B级" : "分属于C级";
System.out.println(a+str);
}

}

请问为什么
        Scanner input = new Scanner(System.in);
System.out.println("请输入一个分数(0-100):");
double a = input.nextDouble();
1. 这段话放到while外面,输入111,提示会无限循环,而放到while里面就只会提示一次
2. 我想在提示错误的时候,那句“请输入一个分数(0-100):”不打出来,需要怎么改,求大神

6 个回复

倒序浏览
写的不错哦亲,继续努力
回复 使用道具 举报
这还是新人吗?那我的水平岂不是还没出生...
回复 使用道具 举报

  1. import java.io.IOException;
  2. import java.util.Scanner;

  3. public class Four {
  4. public static void main(String[] args) {
  5. double a=0.0;//1.将局部变量a定义为全局变量
  6. while (a<=100 && a>=0) {//2.改变while循环条件
  7. Scanner input = new Scanner(System.in);
  8. System.out.println("请输入一个分数(0-100):");
  9. a = input.nextDouble();
  10. try {
  11. if (a>100 || a<0)
  12.                 //用户输入负数或大于100的时候,提醒用户重新输入。
  13. throw new IOException("请重新输入");
  14. else
  15. grade(a);
  16. break;
  17. }

  18. catch (IOException e) {
  19.                //抓取上面提示的错误,如果上面报错,证明用户输入格式不符合,这里实现重新输入。
  20. System.out.println("错误,请从新输入:");//4.抓取的错误信息并没有使用到
  21. }
  22. }
  23. }

  24. public static void grade(double a) {
  25. String str = null;
  26. /*
  27. while(a>100 || a<0) {
  28. System.out.println("输入错误,请重新输入:");

  29. }3.多余的判断
  30. */
  31. if(a>=0 && a<=100)
  32. str = (a>=90)? "分属于A级" :(a>=60)? "分属于B级" : "分属于C级";
  33. System.out.println(a+str);
  34. }

  35. }
复制代码
回复 使用道具 举报
好高级,看不懂
回复 使用道具 举报
好高级啊 这新人好屌
回复 使用道具 举报
不是新手的我表示看不懂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马