JAVA初学者问题2
import java.util.*; public class lesson3jieduan2 { public static void main(String[] args){ intln("我行我素购物系统>幸运抽奖"); Scanner input=new Scanner( ); int suiJishu=(int)(Math.random()*10); int("请输入4位会员号:"); int huiYuanhao= xtInt(); int baiWei=huiYuanhao%1000/100; if(baiWei==7){ int("恭喜您!\t"+suiJishu+"\t是幸运客户,获得精美跑车一辆(玩具车)!"); }else if(baiWei!=7){ int("谢谢参与!"); } } } ——————————————————————— 运行之后 我行我素购物系统>幸运抽奖 请输入4位会员号:7756 恭喜您! 1 是幸运客户,获得精美跑车一辆(玩具车)! 产生随机数(0-9中任意数字)方法: int a = (int)(Math.random()*10); ———————————————————— 问题 1 为什么不是7756这个会员号,而是“1”,怎么改代码改编码后输出成7756 ———————————————————— 问题 2 产生随机数(0-9中任意数字)方法: int a = (int)(Math.random()*10); 能解释一下这句么,初学者我真是不太理解 ———————————————————— 问题 3 int a = xtInt(); double a = xtDouble(); String a = xt(); 那么"char a = "这个语句后面应该怎么写
修改了程序(猜想程序本意是要随机获取会员号),给出Demo,可运行看下: import java。util。ArrayList; import java。util。Arrays; import java。util。HashMap; import java。
util。List; import java。util。Map; import java。util。Scanner; public class Chapter03_1 { static Scanner input = new Scanner( ); public static void main(String[] args) { intln("我行我素购物系统 > 幸运抽奖"); int("请输入所有会员号(不同会员号请用\",\"分隔,会员号是4位长度的整数,如:7756,7757,7758):\n"); String userIDs = xt(); List userIDList = getUserIDList(userIDs); getLuckyGuy(userIDList, 10); // intln("测试接受char,请输入一个字符:"); // try{ // char a = nextChar(); // intln("输入字符是: " + a); // }catch(Exception e){ // intln("输入字符错误!"); // } } /** * 解析输入的会员号 * @param userIDs * @return */ private static List getUserIDList(String userIDs){ if(null == userIDs || im()。
equals("")) return new ArrayList(); return List( im()。split(",")); } /** * 产生幸运客户 * @param userIDList * @param seed */ private static void getLuckyGuy(List userIDList, int seed){ if(null == userIDList || ze() == 0) return; Map usersMap = new HashMap(); for(String userID : userIDList){ if(null != userID && !""。
equals( im())){ int lucyNumber = ( lueOf(userID)%1000)/100;//注意userID如果不是整数会产生异常 usersMap。put(lucyNumber, userID); } } while(true){ int randomNumber = (int)(Math。
random() * seed); if( ySet()。contains(randomNumber)){ int("恭喜您! 会员 '" + t(randomNumber) + "' 是幸运客户,获得精美跑车一辆(玩具车)!\n"); intln("感谢其他客户的参与!"); break; } } } /** * 获取一个字符 * @return */ public static char nextChar(){ String result = xt(); if(result。
length() > 1){ throw new IllegalArgumentException(result + " is not a char!"); } return arAt(0); } } 问题 1 答: int("恭喜您!\t"+suiJishu+"\t是幸运客户,获得精美跑车一辆(玩具车)!"); 这行代码输出的是suiJishu,不是huiYuanhao。
问题 2 答:Math。random()产生的是一个带正号的 double 值,该值大于等于 0。0 且小于 1。0。Math。random()*10产生的也是个 double 值,该值大于等于 0。0 且小于 10。0。(int)(Math。
random()*10)前面的 (int) 是做强制类型转换,把 double 转换成 int ,此处会发生信息丢失,在 int 取值范围内只丢失小数部分。 问题 3 答:Scanner类是一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器,没有提供返回char类型的方法。
因为Scanner是final类,不可以去继承,可以自定义一个方法来扩展: public static char nextChar(){ String result = xt(); if(result。length() > 1){ throw new IllegalArgumentException(result + " is not a char!"); } return arAt(0); } 运行测试请把上面Demo中的注释代码行恢复即可。
在java语言中要理解char类型,需要了解Unicode字符集,char类型用UTF-16编码描述一个代码单元,是2个字节长不带符号的Unicode字符。还要了解的是字符(char)和字符串(String)的区别;两个char型运算时,自动转换为int型;建议全面学习下java的8种基本类型。
改了下。。。 intln("我行我素购物系统>幸运抽奖"); int suiJishu=(int)(Math。random()*10); int("请输入4位会员号:"); Scanner input=new Scanner( ); int huiYuanhao= xtInt(); int baiWei=huiYuanhao%1000/100; if(baiWei==7){ int("恭喜您!\t"+huiYuanhao+"\t是幸运客户,获得精美跑车一辆(玩具车)!"); }else{ int("谢谢参与!"); } } } 你上面在打印的时候是把随机数打出来,不是打出会员号~ 第二个。
。。。 Math。random(),这个函数返回值是一个大于等于0,且小于1的随机数。得到随机数之后,将这个随机数乘以10,那么就得到一个大于等于0,小于10之间的数值,然后再用 und四舍五入一下,得到最接近的一个整数。这样最后返回的值是一个大于等于0,小于等于10的整数。
第三个 String a= xtLine(); char a= xt()。charAt(0); 。
答:有一个好办法::: 1,输入一个数字,出现只要一输入一个数字,整个会员号就显示出来, 2把光标停留在出现的会员上,变蓝色后在键盘上打操作按住删除键DELETE...详情>>
答:google "java 缓冲池"详情>>
答:百度里搜张孝祥 非常好的视频教程详情>>