Java大神请进!如何从子函数返回到主函数中?

写个抽奖系统,抽奖无论失败还是成功,都有一个提示,让用户选择是否回到欢迎界面。我是将欢迎界面,注册,登陆以及抽奖四个界面分模块写的,每个都占了一个子函数,但是现在不知道该... 写个抽奖系统,抽奖无论失败还是成功,都有一个提示,让用户选择是否回到欢迎界面。
我是将欢迎界面,注册,登陆以及抽奖四个界面分模块写的,每个都占了一个子函数,但是现在不知道该怎么回到主函数中!请各位大神帮帮忙!

代码如下:public class ddd {

static String yonghu[]=new String[10];
static String mima[]=new String[10];
static int luck[]=new int[10];
static int luckcad[]=new int[10];
static Scanner input=new Scanner(System.in);

static int w;

static int c;
public static void main(String[] args) {

System.out.println("************************");
System.out.println("* 欢迎抽奖哦 亲! *");
System.out.println("************************");
System.out.println("\t1.注册");
System.out.println("\t2.登陆");
System.out.println("************************");
System.out.println("请选择一个服务:");

int choose=input.nextInt();

for(int i=0;i<10;i++){
luckcad[i]=(int)(Math.random()*100);//随机数无法确定范围,有可能会缺位!
}

switch (choose) {
case 1:
zhuce();
break;
case 2:
denglu();
break;
}

}

public static void choujiang() {//抽奖
for(int i=0;i<5;i++){
if(luck[w]==luckcad[i]){
System.out.println("********************");
System.out.println("* 恭喜哦 ! 亲 ! *");
System.out.println("********************");
System.out.println("您已获得I PHONE 5一部!");
System.out.println("还是双卡双待哦!亲!");
break;
}else{
System.out.println("********************");
System.out.println("* 抱歉哦 ~ 亲 ! *");
System.out.println("********************");
System.out.println("您只得到了Q PHONE 一部");
break;
}
}
System.out.println("是否返回?(y/n)");
String a=input.next();
if(a=="y"){

}else{

}

}

}

因为字数超限,所以就只粘了主函数和最后一个子函数,还有那个随机问题也帮忙解决一下!谢谢了!
展开
 我来答
wangxsh1984
2011-11-09
知道答主
回答量:61
采纳率:0%
帮助的人:24.1万
展开全部
我想楼主以前没用过java吧,不知道我猜的对不对?如果说错了还请楼主见谅。
先说一下java程序的结构,main函数是程序的入口也可以叫做主函数,其他函数是这个类的方法,但是不叫子函数。一个java程序只执行main函数中写的东西,是不执行楼主所说的子函数的。只有在main方法中调用了类的方法才会执行。如何调用呢?一般情况下是在main方法中ddd d=new ddd();声明一个对象d,然后d.choujiang() 调用这个方法。而楼主写的程序还特别点,即所有的属性和方法前都有static,我不知道楼主是否清楚其含义,既然声明为static的方法,那在调用的时候就不必构件对象,直接在主函数中写ddd.choujiang() 便可以调用。这样可以按楼主的思路继续网下调用其他的方法,程序会顺序网下执行,希望可以帮到楼主。(补充,这样的写法不是面向对象的程序设计思路,建议楼主可以看看java编程思想)
lake_cx
2011-11-07 · TA获得超过166个赞
知道小有建树答主
回答量:209
采纳率:0%
帮助的人:178万
展开全部
Math.Random()返回的范围是0-1
(int)(Math.random()*100)的范围也就确定了是0-100的整数而已,当然可以确定范围了。
逻辑一般这么处理
1、main函数写成死循环
while(input.next() != "y")
{
...
System.out.println("是否退出?y/n”);
}
2、子函数一般可以不加“是否返回”的提示(如果人家不选返回则干什么?),则直接返回主函数进入下一次循环。
3、子函数“是否返回”选“n”则退出,那直接在子函数中加返回值,选退出则返回1,main函数中则判断if(XXX() == 1) break;跳出循环即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
handong5403
2011-11-05 · TA获得超过351个赞
知道小有建树答主
回答量:262
采纳率:0%
帮助的人:159万
展开全部
/**
* 在指定区间取得随机数(整型操作)
*
* @param minNumber
* 区间下限值
* @param maxNumber
* 区间上限值
* @return 返回区间内的值(整型)
*/
public static int randomNumber(int minNumber, int maxNumber) {
return (int) (minNumber + Math.random() * (maxNumber - minNumber + 1));
}

在main方法中改为:
……

while(true){
int choose=input.nextInt();

for(int i=0;i<10;i++){
luckcad[i]=randomNumber(0, 100);//0-100
}

switch (choose) {
case 1:
zhuce();
break;
case 2:
denglu();
break;
default:
System.out.println("Bye");
return;
}

}
……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JinCeon
2011-11-05 · TA获得超过695个赞
知道小有建树答主
回答量:350
采纳率:0%
帮助的人:410万
展开全部
public static void main(String[] args) {
while(true){//在这里用个while循环包住它,至于循环条件你自己看着写。
System.out.println("************************");

至于随机数的问题,除了Math.random()还有个Random类,里面的方法你自己看看api吧。。
网上也有很多确定范围的。比如你要20-30,那就20+random.next(30-20)....是不是这个方法我忘了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
牛明志qF
2011-11-06 · TA获得超过164个赞
知道答主
回答量:176
采纳率:0%
帮助的人:159万
展开全部
可以把主界面上的
System.out.println("************************");
System.out.println("* 欢迎抽奖哦 亲! *");
System.out.println("************************");
System.out.println("\t1.注册");
System.out.println("\t2.登陆");
System.out.println("************************");
System.out.println("请选择一个服务:");
这些再写成一个函数xxx,当你得子函数执行完了,要返回的时候,你就直接再调用刚才的函数xxx
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式