这是什么情况?我好懵逼呀,这个程序在IDEA中执行一部自己自动结束了?,之前是能正常运行的,我可能设置了什么不改设置的,但将idea恢复默认后还是依旧,然后都cdm中试,又有这么个毛病,气炸了,谁明白是什么原因,请指教一下,万分感谢!
package com.qz.student;
import java.util.Random;
import java.util.Scanner;
public class game {
public static void main(String[] args) {
Random r = new Random();
Scanner s = new Scanner(System.in);
int x = r.nextInt(100);
int d = 0;
do {
System.out.println("请输入:");
if (s.hasNextInt()) {
d = s.nextInt();
}
s.close();
if (x > d) {
System.out.println("小了");
}
if (x < d) {
System.out.println("大了");
}
if (x == d) {
System.out.println("恭喜答对了");
}
} while (x != d);
}
}
你是不是改了字符编码
把cmd改成utf8
改变一下编码试试,命令如下
chcp 65001
public static void main(String[] args) {
Random r = new Random();
Scanner s = new Scanner(System.in);
int x = r.nextInt(100);
int d = 0;
do {
System.out.println("请输入:");
if (s.hasNextInt()) {
d = s.nextInt();
}
// Scanner 是一个包装的输入流, s.close() 是关闭了流通道,
// 在循环执行s.hasNextInt() 就会报流关闭错误,所以放在这里是不对的
//s.close();
if (x > d) {
System.out.println("小了");
}
if (x < d) {
System.out.println("大了");
}
if (x == d) {
System.out.println("恭喜答对了");
// 当猜对游戏 则关闭流
s.close();
}
} while (x != d);
}