这究竟是什么原因,有谁也遇到过和我一样的经历?

这是什么情况?我好懵逼呀,这个程序在IDEA中执行一部自己自动结束了?,之前是能正常运行的,我可能设置了什么不改设置的,但将idea恢复默认后还是依旧,然后都cdm中试,又有这么个毛病,气炸了,谁明白是什么原因,请指教一下,万分感谢!

img

img


代码块在下面,绝对不是代码的问题,因为其它代码也是同样的情况

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);

}