在死循环中使用Scanner获得键盘输入
1. 编译时无错误和警告,且运行过程中无异常的代码示例
//编译时无错误和警告,且运行过程中无异常的代码示例
package scanner_test;
import java.util.*;
public class Test {
Scanner s = new Scanner(System.in);
/*Scanner的实例作为类的成员,只生成一次,死循环中调用其方法,结束时应该会
自动调用其close()方法*/
public void test() {
while(true) {
try {
System.out.println("str:"+s.nextLine());
}catch(Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Test t = new Test();
t.test();
}
}
2. 编译时报错的示例代码
//编译时报错
package scanner_test;
import java.util.*;
public class Test2 {
public void test() {
Scanner s = new Scanner(System.in);
while(true) {
try {
System.out.println("str:"+s.nextLine());
}catch(Exception e) {
e.printStackTrace();
}
}
s.close();//编译器提示的 错误:Unreachable code
}
public static void main(String[] args) {
Test2 t = new Test2();
t.test();
}
}
3. 编译时警告的代码示例
//编译时警告
package scanner_test;
import java.util.*;
public class Test3 {
public void test() {
Scanner s = new Scanner(System.in);
//编译器提示的警告:Resource leak: 's' is never closed
while(true) {
try {
System.out.println("str:"+s.nextLine());
}catch(Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Test3 t = new Test3();
t.test();
}
}
4. 编译时无错误和警告,运行过程中出现异常的示例代码
//编译时无错误和警告,运行过程中出现异常
package scanner_test;
import java.util.*;
public class Test4 {
public void test() {
while(true) {
Scanner s = new Scanner(System.in);
try {
System.out.println("str:"+s.nextLine());
}catch(Exception e) {
e.printStackTrace();
}
s.close();
}
}
public static void main(String[] args) {
Test4 t = new Test4();
t.test();
}
}
异常如下:
---------------------
最新文章
- CSS Hack
- Android_SQLite数据库增删改查操作
- 用UEFI安装ArchLinux 20140105
- acdream1421 TV Show (枚举)
- LINUX第五次实验报告
- 深入理解HTTPS通讯原理
- nginx监听端口和反向代理端口的权限问题
- 【11.2noip冲刺赛】 循环整数 (分段打表)
- HTML5 Introduction
- 使用Java编写的B*算法
- MyBatis --- 动态SQL、缓存机制
- python算法&;二分查找法
- git使用命令讲解
- 8. 环境变量_数据库_mongoose的基本使用_模型对象的CRUD
- 运维监控-使用Zabbix Server 添加自定义 item
- react开发初始配置和一些问题
- vlc sdl 播放视频可随窗口改变大小
- KNN分类算法实现手写数字识别
- React中如何优雅的捕捉事件错误
- 004 Hadoop2.x基础知识