Java switch语句变量赋值后无法调用问题咨询(附代码)
问题分析与解决
你遇到的问题其实是Java的大小写敏感性导致的,这是Java里非常常见的小细节坑!
先看你代码里的关键部分:
String[] sDateIn = jTextField1.getText().split("/"); int mDate = Integer.parseInt(sDateIn[0]); int dDate = Integer.parseInt(sDateIn[1]); int yDate = Integer.parseInt(sDateIn[2]); String month; // 这里定义的是小写m的month变量 switch (mDate) { case 1: month = "Jan"; break; case 2: month = "Feb"; break; // ... 其他月份case省略 default: month = "Dec"; break; } // 注意这里你写的是大写M的Month! JOptionPane.showMessageDialog(this, "The converted date is " + Month + " " + dDate + ", " + yDate);
核心问题
Java对变量名的大小写是严格区分的,month和Month是两个完全独立的变量:
- 你在switch语句里一直给**小写的
month**赋值,逻辑本身是没问题的 - 但弹窗里调用的是大写的
Month,这个变量从来没被定义和赋值过,所以编译器会直接报错
解决方法
只需要把弹窗里的Month改成小写的month就可以了,修改后的代码片段:
JOptionPane.showMessageDialog(this, "The converted date is " + month + " " + dDate + ", " + yDate);
这样代码就能正常执行switch的赋值逻辑,输出正确的日期格式啦~
内容的提问来源于stack exchange,提问作者jaxpcdrs
相关产品推荐
相关产品推荐

