Java 读取键盘输入

直接复制粘贴的朋友注意包名和自己的类名

解决Java Scanner 读取多个数据 while无限循环读取问题

浅谈Java 按行读取/输出问题

注意:一但读取.next 如int x=s.nextInt()后,下一个int y=s.nextInt()是读取第二次输入的内容,在while循环中也可以这么理解

import java.util.Scanner;
//键盘输入输出
//不论是next nextInt 程序必须读取到一个与字符类型不同的值时才会跳出循环
//while(s.hasNextXxxx) 要准确如果只写hasNext 当输入到一个读取不相符的内容便会异常退出 :fun3
//当写准确后 读取到非next内容便会正常结束,退出循环.:fun6
public class Day001 {
	static Day001 dy=new Day001();
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		dy.fun3();
	}
	//输出一个int	程序结束
	private void fun1() {
		Scanner s=new Scanner(System.in);
		int a=s.nextInt();
		System.out.println(a);
		s.close();
	}
	//输出一个字符串	程序结束
	private void fun2() {
		Scanner s=new Scanner(System.in);
		String a=s.next();
		System.out.println(a);
		s.close();
	}
	//输出多个int	程序并没有结束	
	//测试用例:1 2 3 4 5 6 7
	//第一行1 2 3 4 5 6 7	第二行7 6 5 4 3 2 1 
	//第一个enter程序输出第一行结果,第二个enter程序输出第二行结果(每输出一个int 换行)
	//测试用例:1 2 3 4 5 r 成功输出1 2 3 4 5 但最终异常报错并推出.
	private void fun3() {
		Scanner s=new Scanner(System.in);
		while(s.hasNext()) {
			int a=s.nextInt();
			System.out.println(a);
		}
		s.close();		
	}
	//输出多个String	程序并没有结束
	//测试用例:你好 中国
	private void fun4() {
		Scanner s=new Scanner(System.in);
		while(s.hasNext()) {
			String a=s.next();
			System.out.println(a);
		}
		s.close();		
	}
	//--------------------------------------------------------------------------------------------------
	//NextLine	程序并没有结束
	//测试用例:第一行1 2 3 4 5 6 7	第二行7 6 5 4 3 2 1 
	//结果:第一个enter 第一行:1 2 3 4 5 6 7.第二个enter 第二行:7 6 5 4 3 2 1 
	//与next的比较:NextLine是一行作为一个整体输出 
	private void fun5() {
		Scanner s=new Scanner(System.in);
		while(s.hasNextLine()) {
			String a=s.nextLine();
			System.out.println(a);
		}
		s.close();		
	}
	//测试用例:1 2 3 4 5 6 程序并没有运行到sum输出处,而是在while中不断循环
	//测试用例:1 2 3 4 5 6 end 程序成功输出sum并退出
	private void fun6() {
		Scanner s=new Scanner(System.in);
		int sum=0;
		while(s.hasNextDouble()) {
			double a=s.nextDouble();
			System.out.println(a);
			sum+=a;
		}
		s.close();
		System.out.println("sum: "+sum);
	}
	

}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值