JAVA里面新手的一点问题

前面两个就不写了Stringresult="";for(inti=0;i<6;6++){intintVal=(int)(Math.random()*26+97);resu... 前面两个就不写了
String result="";
for(int i= 0;i<6;6++)
{
int intVal = (int)(Math.random()*26+97);
result=result+(char)intVal;
}
System.out.println(result)
}
}

这一段里就是有点看不懂(Math.random()*26+97) 意思我知道,可我就是不知道为什么是97~127。这个怎么得出来的?

还有result=result+(char)intVal;是不是这个因为把int改成了char,所以数字就变成了字母? 还是上面一句话就已经变成了字母啊?

还没学多久,也是自学,这个书上没讲为什么。以前也没什么基础。 可能问题很白痴,希望大家不吝赐教。
展开
 我来答
lylegend13
2011-11-28 · TA获得超过4696个赞
知道大有可为答主
回答量:1701
采纳率:0%
帮助的人:1730万
展开全部
”自强才是王道“,嘿嘿
百度网友b4855c5
2011-11-28 · TA获得超过1071个赞
知道小有建树答主
回答量:823
采纳率:0%
帮助的人:959万
展开全部
1.Math.random()*26+97为什么是97~127(其实不是127而是122)
Math.random()的值的范围是0~1(不含1), 0*26+97=97 1*26+97=123 结果97~123(不含123)
2.int值可以和char值进行转换,数据就对应的转成相应的字符
3.你的代码有问题
for(int i= 0;i<6;6++)不是6++而是i++
System.out.println(result)后面少了分号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a40400b
2011-11-28 · TA获得超过149个赞
知道答主
回答量:57
采纳率:0%
帮助的人:56.7万
展开全部
不应该是97~127,应该是97~122吧 Math.random()*26的范围是0~25啊
(char)intVal 是把数字转成对应的字母 应该是ASCII 码的,a-z对应的ascII码是97-122
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huayife3g
2011-11-28 · TA获得超过228个赞
知道小有建树答主
回答量:395
采纳率:0%
帮助的人:307万
展开全部
我不知道是你粗心还是书上代码有问题,首先for(int i= 0;i<6;6++)
里面应该是i++而不是6++,其他random()方法是在0.0~1.0的范围内的随机数,因此(Math.random()*26+97)的范围是(97,123),还有intVal是整形变量,加(char)是强制转换为字符型变量,因此是intVal整数对应的ASCII值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式