-
一个月份查询的,不知道错在哪.5
public class Month { public static void main(String args[]) throws java.io.IOException { int M;//月 int D=0;//天 do{ M=0; System.out.print("输入一个月份"); System.out.println(""); M = (int)System.in.read(); }while(M<1 | M>12); System.out.println(""); switch(M){ case 2:D=28;break; case 1: case 3: case 5: case 7: case 8: case 10: case 12:D=31;break; case 4: case 6: case 9: case 11:D=30;break; default:System.out.println("输入无效");break; } System.out.println(M + "月有"+ D +"天"); } }
请大大解答一下...
小弟不知错在哪了...2008年6月23日 18:30
8个答案 按时间排序 按投票排序
-
采纳的答案
这个。。。
贴代码是因为是在楼主的代码的基础上改的。而且也注释了一下为什么这样改。可能不够详细。呵呵下次改正
顺便说说IO的问题。
M = (int) System.in.read();
得到不是输入的第一位,而是输入的字符的编码的第一个byte。
比如你输入一个2然后回车,可以用System.in.read()读3次,分别是50,13,10可以用下面代码试验就知道了:while(true){ System.out.println(System.in.read()); }
为了验证50,13,10就是2,你可以System.out.println(new String(new byte[]{50,13,10}));
看看是不是2就知道了。
in是InputStream,所以要用个InputStreamReader来将其包装成Reader,Reader是专门将字节流转换成字符流的。而InputStreamReader本身使用不是那么方便,所以再包装一个BufferedReader,使用其b.readLine方法来获取输入的字符非常方便,因为你期望的输入是整数,所以就偷懒了一下直接用Integer的parseInt方法来做转换,加入输入的是字母,这里是抛出异常,楼主可以自己优化一下。
IO就是这样一个包装另外一个来使用的。这种形式非常常见,这里就不展开了。2008年6月24日 00:32
-
你的输入语句有问题,System.in.read(); 得到的是一个字节,你看到的是一个AscII码值。应该得到的是一个字符对吧,那么就用下面的代码就可以了
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));这样得到的就是一个字符了,OK2008年6月24日 10:36
-
M = (int) System.in.read();
只能得到输入的第一位。
输入1,得到 1对应AscII的 49
输入11 得到 1对应AscII的 49
输入2, 得到 2对应Ascii的 50
输入22, 也只能得到2对应Ascii的50
这个就是代码用错的地方呀.
2008年6月24日 10:19
-
哎呀,说错了。lggege 还是说的对。
M = (int) System.in.read();
只能得到输入的第一位。br.readLine()包括了13,10;是回车换行符。
看来还是疏忽了。SORRY。2008年6月24日 00:38
-
M = (int) System.in.read();
只能得到输入的第一位。
输入1,得到 1对应AscII的 49
输入11 得到 1对应AscII的 49
在你的
M = (int) System.in.read();
下面加一句
System.out.println(M);
就知道了2008年6月23日 19:32
-
public static void main(String args[]) throws java.io.IOException { int M;//月 int D=0;//天 do{ M=0; System.out.print("输入一个月份"); System.out.println(""); BufferedReader br = new BufferedReader(new InputStreamReader(System.in));//此处修改,System.in.read()读出来来的是字节。不是字符 M = Integer.parseInt(br.readLine()); }while(M<1 | M>12); System.out.println(""); switch(M){ case 2:D=28;break; case 1: case 3: case 5: case 7: case 8: case 10: case 12:D=31;break; case 4: case 6: case 9: case 11:D=30;break; default:System.out.println("输入无效");break; } System.out.println(M + "月有"+ D +"天"); }
2008年6月23日 18:49
相关推荐
7. 其他附加功能:如天气预报、健康养生建议等,让万年历不仅仅是一个日期查询工具。 虽然该应用的界面设计可能略显朴素,但功能性是衡量一个工具好坏的关键标准。对于那些不那么在意视觉效果,更注重实用性的人来...
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
月末结帐管理:当一个会计期间的帐务处理完毕后,打开月末结帐管理窗口即可将当前期间的帐务做月结处理,在做月结的同时系统自动生成新的会计期间。软件还提供了反结功能,在需要更改已月结的帐务时,可通过反月结...
3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...
3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...
3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...
3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...
3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...
3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...
3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
这些附加功能为软件增添了趣味性和实用性,使得《2008万年历》不仅仅是一个日历工具,还是一个生活小助手。 在使用场景上,无论是家庭用户计划家庭聚会,还是上班族安排工作任务,甚至是学生准备考试复习,都可以...
用户帐号一站式通用,即无无论是在商城还是在论坛只须注册一个帐号即可,全站使用,是目前网上开店的理想平台。 三八、增加了商城报价中心功能! 对于商城商品数量较多的网站,查找一个商品或快速浏览商品是经常的...