【发布时间】:2019-11-09 18:40:10
【问题描述】:
我是一个编程菜鸟,所以我可能对一些关键术语有疑问。 我正在尝试编写一个程序,其中用户输入最小数量和最大数量并生成一个随机数。之后我想知道随机生成的数字中有多少偶数和奇数。我能够成功完成第一部分,但无法检测随机生成的数字中有多少偶数和奇数。
样本输出: 前任: 随机生成数为:478,099 #偶数位数:2 #奇数位数:3
我尝试创建不起作用的局部变量,我想使用 switch case 语句,但我遇到了麻烦。目前我使用了 for 循环,但我想使用 switch case。
public static void main(String[] args)
{
DecimalFormat fmt = new DecimalFormat("###,###,###,###,###");
Scanner scanner = new Scanner(System.in);
int max = -1;
int min = 0;
int [] diffvalue = new int [1];
System.out.println("Enter in a maximum value: ");
max = scanner.nextInt();
System.out.println("Enter in a minimum value: ");
min = scanner.nextInt();
if (min > max)
{
System.out.println("Your minimum value is greater then your
maximum value.");
}
for (int i = 0; i < diffvalue.length; i++)
{
diffvalue[i] = (int)(Math.random()*(max-min)+min);
}
System.out.println("Random Value: ");
for(int i = 0; i < diffvalue.length; i++)
{
System.out.println(fmt.format(diffvalue[i]));
}
}
int l = diffvalue[i];
while (l > 0)
{
switch ((l % 10) % 2)
{
case 1:
odd++;
break;
default:
even++;
}
l /= 10;
}
}
我不能单独看整数。
**EDIT 1**
import java.util.Scanner;
import java.text.DecimalFormat;
public class MyClass
{
public static void main(String args[])
{
DecimalFormat fmt = new DecimalFormat("###,###,###,###,###");
Scanner scanner = new Scanner(System.in);
int max = -1;
int min = 0;
int [] diffvalue = new int [1];
System.out.println("Enter in a maximum value: ");
max = scanner.nextInt();
System.out.println("Enter in a minimum value: ");
min = scanner.nextInt();
int even = 0; int odd = 0;
if (min > max)
{
System.out.println("Your minimum value is greater then your
maximum value.");
}
for (int i = 0; i < diffvalue.length; i++)
{
diffvalue[i] = (int)(Math.random()*(max-min)+min);
}
System.out.println("Random Value: ");
for(int i = 0; i < diffvalue.length; i++)
{
System.out.println(fmt.format(diffvalue[i]));
}
for(int i = 0; i < diffvalue.length; i++)
{
int l = diffvalue[i];
while (l > 0)
{
switch ((l % 10) % 2)
{
case 1:
odd++;
break;
default:
even++;
}
l /= 10;
}
System.out.println("Even:" + even);
System.out.println("Odd: " + odd);
}
}
}
我已经得到它来检测偶数和奇数现在我很想知道是否有办法在没有两个变量(奇数,偶数)的情况下做到这一点。
【问题讨论】:
-
顺便说一句,这是我第一次使用stackoverflow。
-
我应该把 if 放在 switch case 语句中吗?
标签: java arrays switch-statement