将主方法中的变量与另一个Java方法连接
如果参数为偶数,则该方法应返回true,或者 否则就错了。程序的主要方法应该使用循环来生成100个随机整数。它应该使用isEven方法来确定每个随机数是偶数还是奇数。所有这些都完成了 这是我无法理解的部分 循环完成后,程序应显示生成的偶数和奇数 这是我的代码:将主方法中的变量与另一个Java方法连接,java,Java,如果参数为偶数,则该方法应返回true,或者 否则就错了。程序的主要方法应该使用循环来生成100个随机整数。它应该使用isEven方法来确定每个随机数是偶数还是奇数。所有这些都完成了 这是我无法理解的部分 循环完成后,程序应显示生成的偶数和奇数 这是我的代码: import java.util.Random; public class EvenOdd { public static void main(String[] args) { Random rand
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++;
}
}
}
试试这个:
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和evenNumbers变量初始化为0。将oddNumbers和evenNumbers变量定义为静态类变量,循环后可以打印这两个值。Java不是JavaScript。此外,它不具有C++作为函数中的静态变量的能力。 方法中声明的变量是局部变量。每次代码到达方法内的变量定义并在退出方法后销毁时,都会发生变量初始化 所以你有这样的变体: 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);
}
}
}
请注意,evenNumber和oddNumber是EvenOdd方法的局部。每次代码到达此函数的}时,它们就不再存在。尝试用奇偶法定义它们。