小简(JanYork) 2021-10-13 20:45 采纳率: 88.9%
浏览 33
已结题

急,这个判断不是数字后跳到else,下面的键盘输入为什么不起作用?

为什么我后面的jiXu = input.next().charAt(0);这一句不起作用?
输入数字就没问题,输入字母或者中文,因为用了数字判断,所有会调到后面的else,可是下面有个键盘输入,为什么不起作用,都不需要你输入


package choJiang;
import java.util.Scanner;
public class Jineng {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        String name;
        int max = 9999;
        int min = 1000;
        int huiYuan = (int) (Math.random()*(max-min)) +min;
        char jiXu;
        do{
            System.out.println("************欢迎进入奖客富翁系统************");
            System.out.println("1.注册\t2.登录\t3.抽奖");
            System.out.println("*************************************");
            System.out.print("请选择菜单:");
            if(input.hasNextInt()){
                int index = input.nextInt();
                switch(index){
                    case 1:
                        System.out.println("[奖客富翁系统  > 注册]");
                        System.out.println("请填写个人注册信息:");
                        System.out.print("用户名:");
                        name = input.next();
                        System.out.print("密码(整数):");
                        if(input.hasNextInt()){
                            int miMa = input.nextInt();
                            System.out.println("注册成功,请记好您的会员卡号");
                            System.out.println("用户名\t密码\t会员卡号");
                            System.out.println(name+"\t"+miMa+"\t"+huiYuan);
                        }else{
                            System.out.println("请输入正确的密码格式");
                        }
                        break;
                    case 2:
                        System.out.println("[奖客富翁系统  > 登录]");
                        System.out.print("请输入用户名:");
                        String name2 = input.next();
                        if("name".equals(name2)){
                            System.out.println("去");
                        }
                        break;
                    case 3:
                        System.out.println("抽奖");
                        break;
                    default:
                        System.out.println("输入错误");
                        break;
                }
            }else{
                System.out.println("请输入正确数字");
            }
            System.out.println("继续吗?(y/n)");
            jiXu = input.next().charAt(0);
            if('n'==(jiXu)){
                System.out.println("系统已退出,谢谢使用!");
            }
        }while('y'==(jiXu));
    }
}
  • 写回答

1条回答 默认 最新

  • chenl_ 2021-10-13 22:50
    关注

    如果输入的不是数字,input.next().charAt(0) 接收的是你输入的那个不是数字的字符,你需要再加一个input.next() 来接y/n

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月21日
  • 已采纳回答 10月13日
  • 创建了问题 10月13日

悬赏问题

  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏