weixin_56930130 2024-09-27 12:58 采纳率: 100%
浏览 4
已结题

java初学者(相关搜索:switch语句)

java初学者遇到问题!学到了switch语句尝试用switch语句写了个输入图形输出对应图形边数的简易程序,如下,编译可正常编译,但是每次运行时不管是输入三角形、四边形还是五边形,都不能输出对应的case结果,都是输出default的内容,但是如果把case的标签改成英文例如“triangle”均可正常输出,不知道到底是哪里出了问题,用的edit plus写的代码,编码也是用的UTF-8

public class Figure {
    public static void main(String[] args){
        java.util.Scanner s = new java.util.Scanner(System.in);
        System.out.println("请输入一个图形的名称");
        String fi = s.next();
        int n = 0;
        switch(fi){
            case "三角形":
                n = 3;
            break;
            case "四边形":
                n = 4;
            break;
            case "五边形":
                n = 5;
            break;
            default:
                System.out.println("你输入的图形我暂时判断不出来");
                return;
            }
        System.out.println(fi + "有"+ n +"条边");
    }
}

img

case标签修改成英文之后可正常输出

img

  • 写回答

2条回答 默认 最新

  • Java Fans 全栈领域优质创作者 2024-09-27 14:21
    关注

    确认编辑器编码设置:确保您的编辑器(EditPlus)的编码设置为UTF-8,这样可以保证中文字符能够正确识别和处理。

    尝试使用Unicode编码:尝试将case中的中文字符改为对应的Unicode编码,例如将"三角形"改为"\u4E09\u89D2\u5F62","四边形"改为"\u56DB\u8FB9\u5F62","五边形"改为"\u4E94\u8FB9\u5F62"。这样可以避免编码问题导致的错误。

    你也可以在“String fi = s.next();”语句后,打印一下fi在控制台输出的到底是不是“三角形”;看看到底是从哪一步开始出问题的!

    (答题不易,还请采纳!)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月5日
  • 已采纳回答 9月27日
  • 创建了问题 9月27日

悬赏问题

  • ¥15 微信小程序跳转关联公众号
  • ¥15 Java AES 算法 加密采用24位向量报错如何处理?
  • ¥15 使用X11可以找到托盘句柄,监控到窗口点击事件但是如何在监听的同时获取托盘中应用的上下文菜单句柄
  • ¥45 字符串操作——数组越界问题
  • ¥15 Loss下降到0.08时不在下降调整学习率也没用
  • ¥15 QT+FFmpeg使用GPU加速解码
  • ¥15 为什么投影机用酷喵播放电影放一段时间就播放不下去了?提示发生未知故障,有什么解决办法吗?
  • ¥15 来个会搭建付费网站的有偿
  • ¥100 有能够实现人机模式的c/c++代码,有图片背景等,能够直接进行游戏
  • ¥15 以AT89C51单片机芯片为核心来制作一个简易计算器,外部由4*4矩阵键盘和一个LCD1602字符型液晶显示屏构成,内部由一块AT89C51单片机构成,通过软件编程可实现简单加减乘除。