无限循环输入

1.推荐 呕心沥血,自己写的!

public class Hello {
	public static void main(String[] args)  {
		inputScore();
	}

	public static void inputScore(){

		while(true){
			try {
				System.out.println("请输入您的分数:");
				BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
				String score = bf.readLine();
				String regex = "^[0-9]\\d*$";
				if(score.equalsIgnoreCase("quit")){
					System.out.println("谢谢你的使用,欢迎下次光临.");
					System.exit(0);
				}
				if(score.matches(regex)){
					getGrade(Integer.parseInt(score));
				}
				System.out.println("如果想退出输入,请输入quit");
			} catch (Exception e) {
				System.out.println("2222");
				throw new RuntimeException("您的输入有误...");
			}
		}
	}

	public static void getGrade(int score){
		if(score >= 90){
			System.out.println("优秀");
		}else if(score >= 80){
			System.out.println("良好");
		}else if(score >= 70){
			System.out.println("一般");
		}else if(score >= 60){
			System.out.println("差强人意");
		}else if( score >= 0){
			System.out.println("补考");
		}else{
			System.out.println("您的输入有误,请重新输入:");
		}
	}

}

  2. 普通的单次输入

public class Hello {
	public static void main(String[] args)  {
		Scanner scanner = new Scanner(System.in);
		boolean flag = true;
		while(flag){
			try {
				System.out.println("请输入您的分数:");
				int score = scanner.nextInt();
				getGrade(score);

			} catch (Exception e) {
				System.out.println("分数必须是数字! 请重新输入:");
				flag = false;
			}
		}
	}

    public static void getGrade(int score){
		if(score >= 90){
			System.out.println("优秀");
		}else if(score >= 80){
			System.out.println("良好");
		}else if(score >= 70){
			System.out.println("一般");
		}else if(score >= 60){
			System.out.println("差强人意");
		}else if( score >= 0){
			System.out.println("补考");
		}else{
			System.out.println("您的输入有误,请重新输入:");
		}
	}

}

  

时间: 2024-10-07 19:27:53

无限循环输入的相关文章

Ubuntu中输入startx并重启后登录界面无限循环问题

今天,在学习了编程两个多月后遇到的第一个菜鸟技术问题,解决后有一种兴奋和迷茫. 言归正传,说说遇到的问题和解决方案. 在Ubuntu14.04中,按照linux的传统做法(基于redhat),在root下输入了startx并enter,结果出现了一个没有任何图标的界面,没有任何命令可以输入,于是选择重启,那么问题来了. 重启后进入登录界面,但是正确输入密码后还是输入密码的无限循环,纠结...Google.百度后发现原来有好多菜鸟也有同样的问题,于是对此问题进行了探讨学习. 先说解决方案: (1)

无限循环的例子

/* 从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序. 最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,需要根据某些条件(break),来控制循环. */ import java.util.Scanner; class  TestWuXian {     public static void main(String[] args)      {         Scanner s=new Scanner(Sys

socket执行accept函数时没有进入阻塞状态,而是陷入了无限循环

接着前两天继续看<VC深入详解>的网络编程部分,这次我快速看了遍书上的函数以及套接字C-S模型,然后自己从0开始写了个简单的服务端,结果发现一直在输出 而明明我还没有写客户端程序,由于打印的代码只有一处,在如下的while循环里 while (true) { /* 5. 接收客户端发送的连接请求 */ SOCKET sockConnect = accept(sockServer, (SOCKADDR*)&addrClient, &len); /* 6. [发送/接收]数据 */

关于hasNextInt判断后无限循环输出else项的解决办法

话不多说,上来就是干! import java.util.Scanner; public class Test_hasNextInt { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); //关于hasNextInt判断后无限循环输出else项的解决办法 String next;

Ubuntu 14.04解决登录界面无限循环的方法

在Ubuntu下配置Android的环境时,想像在Windows中那样在终端中直接启动adb,以为Linux和Windows一样,将adb的路径添加到环境变量中,于是将adb的路径也export到/etc/profile中,可杯具了,重启系统后,无限循环登录界面,经多方查找资料找到了解决办法. 办法如下: 1. 进入了登录界面后,不用输入密码,按住Ctrl+Alt+F1(听说F1-F6都行) 2. 进入了ubuntu的命令行界面,先输入用户名回车,然后输入密码回车(纯新手,不懂,习惯的直接密码了

Java初学--无限循环

利用for循环和while循环分别做到,从键盘读取任意数,输入0自动跳出无限循环,并判断有几个正数几个负数. 1.for循环的无限循环: 1 import java.util.Scanner;//引用Scanner类用于读取键盘输入 2 class TestXunHuan 3 { 4 public static void main(String[] args) 5 { 6 int a=0;//记录正数的个数 7 int b=0;//记录负数的个数 8 Scanner s=new Scanner(

删除无限循环的文件夹-删除递归文件夹

最近本人的电脑(Win 7)中某个文件夹出现了无限循环,如下:D:\software\app\note\bin\app\note\bin\app\note\bin\app\note\bin\…… 直接删除或通过rmdir 命令都无法将其删除.会提示源文件长度 解决办法: 假如要删除第一层bin文件夹下的app文件夹. 1. 在该文件夹下新建一个文件夹,如命名为a. 2. Windows键+R(运行窗口),输入cmd.通过cd 命令切换路径到第一层bin目录 3. 输入 robocopy /MIR

格式化字符串漏洞-无限循环

程序大致逻辑如下,程序存在system函数,保护只开了NX setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0); puts("Welcome to my ctf! What's your name?"); __isoc99_scanf("%64s", &format); printf("Hello "); printf(&format); return 0; 存在格式化字符串漏洞,但

renderer_outline_aa::line3()无限循环

情况一: 在该函数出现无限循环在如下两句代码: while(abs(sx - lp.x1) + abs(sy - lp.y1) > lp2.len){sx = (lp.x1 + sx) >> 1;sy = (lp.y1 + sy) >> 1;} 断点调试的时候,出现无限循环的结果是因为取值出现如下的问题: sx=0x3d00lp.x1=0x3d01sy=0x7a00lp.y1=0x7a01lp2.len=1 在这种情况下,sx和sy的值永远不变,并且循环的条件永远成立(whi