关闭 java Scanner时遇见的问题(已解决)

问题描述

写了个判断输入数字是否符合要求的函数,如图:
在这里插入图片描述
但是这样Scanner就没关,于是想把in关掉,加了一句in.close() 于是陷入死循环:
在这里插入图片描述

解决方案

将Scanner in设为static ,并在最后把他关掉。代码:

public class No4 {
	static Scanner in;//设为静态
	public static int overzero_int_ensure() {//检测确保输入的是一个不小于零的整数,如果不符合则重新输入
		int now1;	
		while (true){
			in =new Scanner(System.in);
		if (in.hasNextInt()) {
			if ((now1=in.nextInt())>=0) {
				return now1;
			}
			else {
				System.out.println("您输入了一个小于零的整数,请重新输入:");
				continue;
			}
		}
		else {
			System.out.println("您输入的不是整数,请重新输入:");
			continue;
		}
	}
	}
	public static void main(String args[]) {
		long now=312032486;
		long year_time=365*24*60*60;
		long birth=year_time/7,die=year_time/13,movein=year_time/45;
		long year_up=birth+movein-die;
		int year,now1;
		System.out.println("假设当前人口为312032486,则五年后人口大约为:"+(now+year_up*5));
		System.out.println("假设当前人口为:(请输入一个不小于零的整数)");
		now1=overzero_int_ensure();
		System.out.println("未来年数为:(请输入一个不小于零的整数)");
		year=overzero_int_ensure();	
		in.close();//全部用完再关闭
		System.out.println(year+"年后,人数大概为:"+(now1+year_up*year));	
		
	}

}

解释

Scanner的数据流关闭一次就打不开了,所以如果把close放在前面就会出错,而方法体内是循环,在最后一次关闭比较麻烦,所以将Scanner设为静态,并在main函数用完Scanner后再关闭。

展开阅读全文

Python数据分析与挖掘

01-08
92讲视频课+16大项目实战+源码+¥800元课程礼包+讲师社群1V1答疑+社群闭门分享会=99元   为什么学习数据分析?       人工智能、大数据代有什么技能是可以运用在各种行业的?数据分析就是。       从海量数据中获得别人看不见的信息,创业者可以通过数据分析来优化产品,营销人员可以通过数据分析改进营销策略,产品经理可以通过数据分析洞察用户习惯,金融从业者可以通过数据分析规避投资风险,程序员可以通过数据分析进一步挖掘出数据价值,它和编程一样,本质上也是一个工具,通过数据来对现实事物进行分析和识别的能力。不管你从事什么行业,掌握了数据分析能力,往往在其岗位上更有竞争力。    本课程共包含五大模块: 一、先导篇: 通过分析数据分析师的一天,让学员了解全面了解成为一个数据分析师的所有必修功法,对数据分析师不在迷惑。   二、基础篇: 围绕Python基础语法介绍、数据预处理、数据可视化以及数据分析与挖掘......这些核心技能模块展开,帮助你快速而全面的掌握和了解成为一个数据分析师的所有必修功法。   三、数据采集篇: 通过网络爬虫实战解决数据分析的必经之路:数据从何来的问题,讲解常见的爬虫套路并利用三大实战帮助学员扎实数据采集能力,避免没有数据可分析的尴尬。   四、分析工具篇: 讲解数据分析避不开的科学计算库Numpy、数据分析工具Pandas及常见可视化工具Matplotlib。   五、算法篇: 算法是数据分析的精华,课程精选10大算法,包括分类、聚类、预测3大类型,每个算法都从原理和案例两个角度学习,让你不仅能用起来,了解原理,还能知道为什么这么做。
©️2020 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值