黑马程序员技术交流社区
标题:
这个代码那里有问题啊?
[打印本页]
作者:
江华
时间:
2013-3-11 16:33
标题:
这个代码那里有问题啊?
本帖最后由 江华 于 2013-3-11 19:55 编辑
/*
问题已解决,书写有无,修改后的代码:
http://bbs.itheima.com/forum.php?mod=redirect&goto=findpost&ptid=40658&pid=249507
* ascii中
* 数字是从48~57,A~Z是从65~90 ,a~z是97~122,
* 从48~开始到122之间没有 (58~64)和(91~96)这12个数字
* 我们可以生产随机数,出现没有的12个数字,那就重新再生成!
* 把它们变成48+ new Random().nextInt(74) 其中 new Random().nextInt(74)不在(58~64)和(91~96)这12个数字之内
* */
class MiMaShengCheng
{
public static void main(String[] args)
{
System.out.print("看下我们随机生成的密码是什么?");
for (int i=0;i<6;i++)
System.out.print(suijishu);
}
public static char suiJiShu()
{
//生成随机数
Random r=new Random();
int rint=r.nextInt(74);
if((rint > 9 && rint < 17 ) || ( rint > 42 && rint < 49))
// 不符号要求,递归调用,找到合适的结束
return suiJiShu;
else
// 符合要求,返回生成的ascii对应的字符
return (char)(rint+48);
}
}
复制代码
作者:
李辉
时间:
2013-3-11 16:38
本帖最后由 李辉 于 2013-3-11 16:51 编辑
15行里的方法suijishu 调用得加():suijishu() ,
第25行:你这个程序里只定义了一个suijishu,不过是方法名,不是变量。不知道你想在这里返回什么,如果要返回一个随机数,那应该returrn rint; 如果return suijishu() ,那就死循环了,不管怎样也不能return suijishu; 这是个语法错误,通不过编译的。
作者:
江华
时间:
2013-3-11 16:45
哦,谢谢!
问题解决了
是我们的记事本默认的编码是 utf-8了
我把它变成ANSI以后,就没事了,一下是可以运行的代码:
/*
* ascii中
* 数字是从48~57,A~Z是从65~90 ,a~z是97~122,
* 从48~开始到122之间没有 (58~64)和(91~96)这12个数字
* 我们可以生产随机数,出现没有的12个数字,那就重新再生成!
* 把它们变成48+ new Random().nextInt(74) 其中 new Random().nextInt(74)不在(58~64)和(91~96)这12个数字之内
* */
import java.util.Random;
class MiMaShengCheng
{
public static void main(String[] args)
{
System.out.println("看下我们随机生成的密码是什么?");
for (int i=0;i<6;i++)
System.out.print(suiJiShu());
}
public static char suiJiShu()
{
//生成随机数
Random r=new Random();
int rint=r.nextInt(74);
if((rint > 9 && rint < 17 ) || ( rint > 42 && rint < 49))
// 不符号要求,递归调用,找到合适的结束
return suiJiShu();
else
// 符合要求,返回生成的ascii对应的字符
return (char)(rint+48);
}
}
复制代码
作者:
郑元皓
时间:
2013-3-11 19:31
递归调用函数的时候 函数名后面都没有加括号,而且逻辑也有问题
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2