启斌呢 2023-06-28 18:13 采纳率: 80%
浏览 15
已结题

char类型声明变量和赋值不可以一起吗?

//如果李三不还钱,则老汉将一直使出五连鞭,直到李三说还钱为止
        //化繁为简
        //不停的问还钱吗?
        //使用char answer 接受,定义一个Scanner对象
        //do whilewhile判断如果是y就不再循环
         Scanner answerScanner = new Scanner(System.in);
         do{
             System.out.println("老韩使出了五连鞭");
             System.out.println("李三你还钱吗? y/n");
             char answer = answerScanner.next().charAt(0); 
             System.out.println("他的回答是:"+answer);
         }while(answer != 'y');

这样直接声明变量和赋值answer就会报错

img

但是先声明answer就不会报错


         Scanner answerScanner = new Scanner(System.in);
         char answer = ' ';
         do{
             System.out.println("老韩使出了五连鞭");
             System.out.println("李三你还钱吗? y/n");
             answer = answerScanner.next().charAt(0); 
             System.out.println("他的回答是:"+answer);
         }while(answer != 'y');
  • 写回答

4条回答 默认 最新

  • threenewbee 2023-06-28 18:17
    关注

    因为你的 answer 是在 {} 里面定义的,作用域在里面
    while 条件表达式在 {} 外面,所以不认识

         Scanner answerScanner = new Scanner(System.in);
         while (true){
             System.out.println("老韩使出了五连鞭");
             System.out.println("李三你还钱吗? y/n");
             char answer = answerScanner.next().charAt(0); 
             System.out.println("他的回答是:"+answer);
             if (answer == 'y') break;
         }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 7月6日
  • 已采纳回答 6月28日
  • 创建了问题 6月28日

悬赏问题

  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 VB.NET如何绘制倾斜的椭圆
  • ¥15 arbotix没有/cmd_vel话题
  • ¥15 odoo17的分包重新供应路线如何设置?可从销售订单中实时直接触发采购订单或相关单据
  • ¥15 用C语言怎么判断字符串的输入是否符合设定?
  • ¥15 通信专业本科生论文选这两个哪个方向好研究呀
  • ¥50 我在一个购物网站的排队系统排队,这个排队到号后重新定向到目标网站进行购物,但是有技术牛通过技术方法直接跳过排队系统进入目标网址购物,有没有什么软件或者脚本可以用
  • ¥15 ios可以实现ymodem-1k协议 1024字节传输吗?