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{
}
}
}
因为字数超限,所以就只粘了主函数和最后一个子函数,还有那个随机问题也帮忙解决一下!谢谢了! 展开
我是将欢迎界面,注册,登陆以及抽奖四个界面分模块写的,每个都占了一个子函数,但是现在不知道该怎么回到主函数中!请各位大神帮帮忙!
代码如下: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{
}
}
}
因为字数超限,所以就只粘了主函数和最后一个子函数,还有那个随机问题也帮忙解决一下!谢谢了! 展开
7个回答
展开全部
我想楼主以前没用过java吧,不知道我猜的对不对?如果说错了还请楼主见谅。
先说一下java程序的结构,main函数是程序的入口也可以叫做主函数,其他函数是这个类的方法,但是不叫子函数。一个java程序只执行main函数中写的东西,是不执行楼主所说的子函数的。只有在main方法中调用了类的方法才会执行。如何调用呢?一般情况下是在main方法中ddd d=new ddd();声明一个对象d,然后d.choujiang() 调用这个方法。而楼主写的程序还特别点,即所有的属性和方法前都有static,我不知道楼主是否清楚其含义,既然声明为static的方法,那在调用的时候就不必构件对象,直接在主函数中写ddd.choujiang() 便可以调用。这样可以按楼主的思路继续网下调用其他的方法,程序会顺序网下执行,希望可以帮到楼主。(补充,这样的写法不是面向对象的程序设计思路,建议楼主可以看看java编程思想)
先说一下java程序的结构,main函数是程序的入口也可以叫做主函数,其他函数是这个类的方法,但是不叫子函数。一个java程序只执行main函数中写的东西,是不执行楼主所说的子函数的。只有在main方法中调用了类的方法才会执行。如何调用呢?一般情况下是在main方法中ddd d=new ddd();声明一个对象d,然后d.choujiang() 调用这个方法。而楼主写的程序还特别点,即所有的属性和方法前都有static,我不知道楼主是否清楚其含义,既然声明为static的方法,那在调用的时候就不必构件对象,直接在主函数中写ddd.choujiang() 便可以调用。这样可以按楼主的思路继续网下调用其他的方法,程序会顺序网下执行,希望可以帮到楼主。(补充,这样的写法不是面向对象的程序设计思路,建议楼主可以看看java编程思想)
展开全部
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;跳出循环即可。
(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;跳出循环即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/**
* 在指定区间取得随机数(整型操作)
*
* @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;
}
}
……
* 在指定区间取得随机数(整型操作)
*
* @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;
}
}
……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public static void main(String[] args) {
while(true){//在这里用个while循环包住它,至于循环条件你自己看着写。
System.out.println("************************");
至于随机数的问题,除了Math.random()还有个Random类,里面的方法你自己看看api吧。。
网上也有很多确定范围的。比如你要20-30,那就20+random.next(30-20)....是不是这个方法我忘了。
while(true){//在这里用个while循环包住它,至于循环条件你自己看着写。
System.out.println("************************");
至于随机数的问题,除了Math.random()还有个Random类,里面的方法你自己看看api吧。。
网上也有很多确定范围的。比如你要20-30,那就20+random.next(30-20)....是不是这个方法我忘了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以把主界面上的
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询