我正在做一个课堂练习,我把陈述和解释。
编写一个程序,允许我们通过键盘接受大于或等于零的数字,直到输入负数。此时,屏幕上将显示以下菜单:
1-Suma de los números pares introducidos.
2-Media de los números pares introducidos. (con dos decimales)
3-Mayor nº impar introducido.
4-Cuántos números hemos introducido.
5-Cuantos números de los introducidos han sido ceros, cuántos han sido pares y cuantos impares.
6.-Salir.
菜单(已经输入的值)将重复,直到用户决定“退出”。
第一步我不知道我是否必须累积输入的数字,我已经这么说了,即使我仍然错了,我已经将它们保存在array
菜单中。问题是我正在尝试switch
使用菜单进行操作,但我不知道如何进行这些操作,如果它们进入机箱内部或外部。我的第二个疑问是如何在单击之前为用户可视化选项,看看它以前做了什么。我把我所做的留给你。
public class Ejercicio4 {
public static void main(String[] args) {
System.out.println("Progama que nos permite aceptar numeros mayores o iguales a cero y si no, aparecerá un menú.");
System.out.println("----------------------------------------------------------------------------------------------------------------------------------------\n");
Scanner teclado;
int numero;
List<Integer> lista = new ArrayList<Integer>();
int salir = 6;
int opcion = 0;
try {
do {
System.out.print("Introduce un número: ");
teclado = new Scanner(System.in);
numero = teclado.nextInt();
if (numero >= 0) {
lista.add(numero);
}
} while (numero >= 0);
if (numero < 0) {
while (opcion != salir) {
System.out.println("--------- Menú de opciones --------");
System.out.println("1-Suma de los números pares introducidos ");
System.out.println("2-Media de los números pares introducidos. (con dos decimales) ");
System.out.println("3-Mayor nº impar introducido. ");
System.out.println("4-Cuántos números hemos introducido. ");
System.out.println("5-Cuantos números de los introducidos han sido ceros, cuántos han sido pares y cuantos impares ");
System.out.println("6-Salir ");
teclado = new Scanner(System.in);
opcion = teclado.nextInt();
switch (opcion) {
//1-Suma de los números pares introducidos
case 1:
int suma = 0;
for (int i = 0; i < lista.size(); i++) {
int num = lista.get(i);
if (num % 2 == 0) {
suma = num + suma;
}
}
System.out.println("La suma de los números pares introducidos son" + suma);
break;
//2-Media de los números pares introducidos. (con dos decimales)
case 2:
double media = 0;
int x = 0;
suma = 0;
for (int i = 0; i < lista.size(); i++) {
int num = lista.get(i);
if (num % 2 == 0) {
suma = num + suma;
x++;
}
}
media = suma / x;
System.out.println("La media de los números pares introducidos son " + Math.round(media * 100d) / 100d + "\n");
break;
//3-Mayor nº impar introducido.
case 3:
suma = 0;
int max = 0;
for (int i = 0; i < lista.size(); i++) {
int num = lista.get(i);
if (!(num % 2 == 0)) {
if (num > max) {
max = num;
}
}
}
System.out.println("La media de los números pares introducidos son " + max);
break;
//4-Cuántos números hemos introducido.
case 4:
int numeros = 0;
for (int i = 0; i < lista.size(); i++) {
numeros++;
}
System.out.println("Cuantos números hemos introducido " + numeros);
break;
//5-Cuantos números de los introducidos han sido ceros, cuántos han sido pares y cuantos impares.
case 5:
int pares = 0;
int impares = 0;
int ceros =0;
int cero=0;
for (int i = 0; i < lista.size(); i++) {
int num = lista.get(i);
if (num % 2 == 0) {
pares++;
}else if(!(num % 2 == 0)&& num!=0){
impares++;
}
if (num==0){
ceros++;
}
}
System.out.println("Los números pares han sido : " + pares);
System.out.println("Los números impares han sido : " + impares);
System.out.println("Los números cero han sido : " + ceros);
break;
//6.-Salir.
case 6:
break;
}
}
}
} catch (InputMismatchException ime) {
System.out.println("¡Cuidado! Solo puedes insertar números. ");
}
}
}`introducir el código aquí`
public static void main(String[] args) {
System.out.println("Progama que nos permite aceptar numeros mayores o iguales a cero y si no, aparecerá un menú.");
System.out.println("----------------------------------------------------------------------------------------------------------------------------------------\n");
Scanner teclado;
int numero;
List lista = new ArrayList();
int salir = 6;
int opcion = 0;
try {
System.out.print("Introduce un número: ");
teclado = new Scanner(System.in);
numero = teclado.nextInt();
do {
lista.add(numero);
} while (numero >= 0);
if (numero < 0) {
while (opcion != salir) {
System.out.print("Elige una opción: ");
switch (opcion) {
//1-Suma de los números pares introducidos
case 1:
System.out.print("La suma de los números pares introducidos son" +(lista%2==0) +lista);
break;
//2-Media de los números pares introducidos. (con dos decimales)
case 2: break;
//3-Mayor nº impar introducido.
case 3: break;
//4-Cuántos números hemos introducido.
case 4: break;
//5-Cuantos números de los introducidos han sido ceros, cuántos han sido pares y cuantos impares.
case 5: break;
//6.-Salir.
case 6: break;
}
}
}
} catch (InputMismatchException ime) {
System.out.println("¡Cuidado! Solo puedes insertar números. ");
}
}
}
我会给你一个或多或少的例子(对于我在编辑器中所做的缩进或分号的错误,我可以给你一个例子,将菜单放在一个单独的类中,这样就没有剩下这么多代码,但你可以在那里做,最后它是一样的。每个案例中的开关你必须创建你在菜单中选择的逻辑。你将选项传递给它,这取决于你已经进入它会做一件事或另一件事。一个好的做法是在开关中包含默认值,我没有做过,但你可以调查一下。我希望它对你有帮助,如果你有任何问题,你已经知道了,我们在这儿!
让我们以Oracle Switch 教程为基础,我们拥有 Switch 的使用方式,如果没有输入(如果已定义),则
switch (opcion)
取决于opcion
enters a的值case
case con el valor
default
}
为此,您必须使用方法,方法链接 2方法是允许您具有可重用功能的代码块。因此在一个例子中:
注意:提供的代码有语法或逻辑错误:
opcion
它永远不会改变价值。总是0
System.out.print("La suma de los números pares introducidos son" +(lista%2==0) +lista);
list 不是“数字”,因此您无法对列表对象执行操作,(lista%2==0)
并且+lista
它可能不会给出有用的结果来显示。关于案例5,你可以在开始时问它是否为0。如果不是,那么你问它是否是偶数,然后是奇数。这样,如果为 0 则不会算作一对。
这样,它会询问它是否为偶数的唯一方法是它是否不为 0,因此它不会算作偶数。
希望这可以帮到你!!
PS:我不明白“零”变量是如何工作的。
PD2:抱歉缩进,这是我第一次回答,我不知道该怎么做=)。