为了账号安全,请及时绑定邮箱和手机立即绑定

将 main 方法中的变量与另一个 Java 方法连接

将 main 方法中的变量与另一个 Java 方法连接

12345678_0001 2023-10-13 15:26:12
如果参数为偶数,则该方法应返回 true,否则返回 false。程序的 main 方法应该使用循环来生成 100 个随机整数。它应该使用 isEven 方法来确定每个随机数是偶数还是奇数。这一切都完成了!!!这是我想不通的部分!循环完成后,程序应显示生成的偶数个数和奇数个数。这是我的代码:import java.util.Random;public class EvenOdd{    public static void main(String[] args)    {        Random random = new Random();        int randomInteger = 0;        for(int i = 0; i < 100; i++){            randomInteger = random.nextInt();            System.out.println("Random Integer: " + randomInteger);            EvenOdd(randomInteger);        }    }    public static void EvenOdd(int x)    {        int oddNumbers = 0;        int evenNumbers = 0;        if ((x % 2) == 0)        {            System.out.println("Even");            evenNumbers++;        }        else        {            System.out.println("Odd");            oddNumbers++;        }    }}
查看完整描述

3 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

尝试用这个:


public static void main(String[] args)

{


    Random random = new Random();


    int randomInteger = 0;

    int oddNumbers = 0;

    int evenNumbers = 0;


    for(int i = 0; i < 100; i++){

        randomInteger = random.nextInt();

        System.out.println("Random Integer: " + randomInteger);

        if(evenOdd(randomInteger)) evenNumbers++;

        else oddNumbers++;

    }

    System.out.printf("Even numbers: %d - Odd numbers: %d", evenNumbers, oddNumbers);

}


public static boolean evenOdd(int x)

{

    if ((x % 2) == 0)

    {

        System.out.println("Even");

        return true;

    }

    else

    {

        System.out.println("Odd");

        return false;

    }

}

您原来的方法不起作用,因为每次调用该方法时都会将oddNumbers和变量初始化为 0。evenNumbers


查看完整回答
反对 回复 2023-10-13
?
交互式爱情

TA贡献1712条经验 获得超3个赞

Java 不是 JavaScript。而且,它不具备C++“函数中的静态变量”的能力。

方法内声明的变量是局部的。每次代码到达方法内的变量定义时都会发生变量初始化,并在退出方法后被销毁。

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html

所以你有这样的变体:

1) 在主方法中计算数字并从实用程序方法返回指示器。

1.1) 布尔值

public static boolean isEven(int x){

    return (x % 2) == 0;

};

1.2) 枚举


private enum NumberType {

    EVEN,

    ODD

}


public static NumberType getNumberType (int x) {

    if ((x % 2) == 0) {

        return NumberType.EVEN;

    } else {

        return NumberType.ODD;

    }

};

2)使变量静态:


public class EvenOdd {


    private static int evenNumbersCount = 0;

    private static int oddNumbersCount = 0;


    public static void main(String[] args) {

        // your code

    }


    public static void countNumberType (int x) {

        if ((x % 2) == 0) {

            ++evenNumbersCount;

        } else {

            ++oddNumbersCount;

        }

    }

}

3)在一些复杂的情况下,您需要将容器传递给您的方法:


public class EvenOdd {


    private static final String EVEN = "even";

    private static final String ODD = "odd";


    public static void main(String[] args) {

        // initialize container

        Map<String, Integer> evenOddCounts = new HashMap<>(2, 1);

        evenOddCounts.put(EVEN, 0);

        evenOddCounts.put(ODD, 0);


        Random random = new Random();

        int randomInteger = 0;

        for (int i = 0; i < 100; i++) {

            randomInteger = random.nextInt();

            countNumberType(evenOddCounts, randomInteger);

        }


        System.out.println(evenOddCounts.toString());

    }


    public static void countNumberType(Map<String, Integer> counts, int x) {

        if ((x % 2) == 0) {

            counts.compute(EVEN, (numberType, count) -> ++count);

        } else {

            counts.compute(ODD, (numberType, count) -> ++count);

        }

    }

}


查看完整回答
反对 回复 2023-10-13
?
慕村225694

TA贡献1880条经验 获得超4个赞

将 oddNumbers、evenNumbers 变量定义为静态类变量,在循环之后您可以打印这 2 个值。



查看完整回答
反对 回复 2023-10-13
  • 3 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信