Java - Error Código Eclipse

 
Vista:
sin imagen de perfil

Error Código Eclipse

Publicado por Juan (12 intervenciones) el 13/07/2022 01:54:40
Mis respetos a todos. Me asignaron un enunciado y me error al códificar en Java. Por favor si me pueden ayudar. Imploro ayuda de ustedes. Gracias. Los errores que saltan son:

*Multiple markers at this line. Syntax error, insert "}" to complete Methodbody
*Syntax error, insert "}" to complete Block

*Multiple markers at this line -Syntax error on token "int", record expected
*Syntax error, insert "}" to complete RecordBodyç

*Syntax error on token "}" , delete this token.


/*Realizar un Proceso que imprima cuántos hombres y cuántas mujeres hay en un colegio.
* Por cada alumno se deben ingresar los sgtes datos:
*
*Nombre del alumno
*Código de sexo (0=Hombre, 1=Mujer)
*
*
El proceso debe terminar cuando se pulsa enter en el nombre del alumno.*/
package Cantidad;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import java.util.Scanner;
 
public class Cantidad {
 
	String Nombre;
	int Codigo;
	int Con_Hombres;
	int Con_Mujeres;
 
	public void Ingreso() {
		Scanner ingreso  = new Scanner (System.in) ;
		  Con_Hombres =0;
		  Con_Mujeres =0;
 
		while (Nombre != "") {
			System.out.println("Ingresar Nombre Alumno:");
 
			 Nombre = ingreso.next();
 
			System.out.println("Ingresar Código:");
 
			 Codigo = ingreso.nextInt();
 
			int Evaluar(int ConHombres, int Con_Mujeres,int Codigo) {
			Con_Hombres =0;
			Con_Mujeres =0;
 
			if (Codigo == 0) {
 
				Con_Hombres= Con_Hombres+1;
			}
 
			if (Codigo ==1) {
 
				Con_Mujeres = Con_Mujeres+1;
 
 
			}
 
 
			System.out.println("Cantidad Hombres:  " +Con_Hombres);
			System.out.println("Cantidad Mujeres: " +Con_Mujeres);
		}
	}
 
 
}
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Error Código Eclipse

Publicado por Kabuto (1381 intervenciones) el 13/07/2022 12:19:31
No hay un método main(), así que este programa jamás se ejecutará.

Por otra parte, hay un método llamado Evaluar(), que está declarado DENTRO de otro método llamado Ingreso().
Eso es lo que hace que el compilador no sepa donde empieza y termina cada bloque de código, porque está todo anidado y hay demasiada "anarquía" sintáctica.

Otro detalle.
Los datos de tipo String, en realidad son objetos de clase. Esto significa que con ellos no podemos usar los comparadores == ni tampoco !=.
No darán los resultados que esperamos obtener:
1
while (Nombre != "")

Al ser objetos de clase, disponen de sus propios métodos para compararse, así que esto sería más correcto:
1
while (!Nombre.equals(""))



Te propongo esta otra solución para el ejercicio.
Para saber si el usuario ha introducido un nombre o simplemente ha usado la tecla enter para terminar el proceso, fíjate que lo hago es preguntar si la variable "nombre" está vacía (isEmpty().

Si NO lo está, es que me ha dado un nombre y por tanto pregunto código de sexo y el bucle se repite una vez más.
De lo contrario, es que NO ha dado nombre, solo ha pulsado enter. Entonces no pido código, el bucle termina y entonces ya pasamos a mostrar el resumen de datos obtenidos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import java.util.Scanner;
 
public class ContarHyM {
 
	public static void main(String[] args) {
		Scanner teclado = new Scanner(System.in);
		int contHombres = 0, contMujeres = 0;
		String nombre = "";
 
		do {
			System.out.print("\nIntroduzca nombre: ");
			nombre = teclado.nextLine();
 
			if (!nombre.isEmpty()) { //Comprobamos si se ha introducido un nombre
				System.out.print("Indique código sexo(0=Hombre/1=Mujer): ");
				int codigo = Integer.parseInt(teclado.nextLine());
 
				if (codigo == 0)
					contHombres++;
				else
					contMujeres++;
			}
 
		}while(!nombre.isEmpty()); //Bucle finaliza cuando no se haya introducido ningún nombre
 
		//Mostramos datos
		System.out.println("\nRecuento por sexo:");
		System.out.println("- Hombres: " + contHombres);
		System.out.println("- Mujeres: " + contMujeres);
		System.out.println("\n\t\tFIN DE PROGRAMA");
		teclado.close();
 
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Error Código Eclipse

Publicado por Juan (12 intervenciones) el 13/07/2022 17:35:25
Muchas Gracias por su ayuda. Seguire subiendo códigos para seguir consultandole. Salud !!!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Corección Código Java

Publicado por Juan (12 intervenciones) el 27/07/2022 19:09:33
Disculpen por públicar en esta sección mi consulta. Es que no me permite públicar en un nuevo elemento.
Mis respetos a todos. Me han asignado este enunciado para códificar. Por favor necesito sus comentarios y criticas. Saludos.

/* Emitir listado con nombres y direcciones de personas que cumplan los requisitos, se deben ingresar los sgtes datos:
* Nombre del Postulante(Enter para fin)
* Dirección
* Código de sexo (H/M)
* Edad
* Años de Experiencia
* Estado civil (1= Soltero, 2 = Casado, 3=Viudo, 4=Divorciado)
* Dispuesto a vivir en otro lugar (S/N)*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package Intro;
import java.util.Scanner;
 
public class UnopuntoTrece {
 
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
 
String nombre = "";
 
while(! nombre.equals("Fin")){
 
String direccion = "";
char codigo = ' ';
int edad = 0;
int años = 0;
int estado = 0;
char dispuesto = ' ';
 
System.out.println("Ingrese  nombre");
 
nombre = teclado.nextLine();
if (nombre.equals("Fin")) {
 
System.out.println("\n Fin de Programa");
 
 
}
else {
if (estado == 2) {
 
}
 
else {
if (edad == 35) {
 
}
 
else {
if (dispuesto == 'S') {
 
}
}
 
System.out.println("Nombre Postulante :" + nombre);
System.out.println("Direccion de Postulante" + direccion);
System.out.println("Pulse INTRO para continuar");
}
}
 
 
 
 
 
 
}
 
teclado.close();
}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Corección Código Java

Publicado por Kabuto (1381 intervenciones) el 28/07/2022 00:55:16
¿Ese es todo el enunciado?
¿Cuáles son los requisitos para decidir quién sale en el listado y quién no? ¿O es que en realidad hay que listar todos los nombres y direcciones introducidos?

Por cierto, se piden muchos datos, pero dice que solo hay que listar nombre y dirección. El resto de datos no hay que listarlos así que por tanto, no hay que almacenarlos.

Pero nombre y dirección sí. Y como no sabemos cuántos postulantes hay, habrá que almacenarlos en sendos ArrayList, uno para nombres y otro para direcciones.
Aunque en realidad se puede hacer con un único ArrayList si concatenamos el nombre y la dirección en una misma cadena, pero supongo que la intención del ejercicio es practicar con varias colecciones de datos y no solo una.
¿O es quizás un ejercicio de programación orientada a objetos (POO) y hay que crear una clase llamada Postulante?


Disculpa que esté dando más preguntas que no respuestas, pero es que el enunciado parece incompleto, o si no muy pobre.


En cualquier caso, a mi me parece que hay que pedir datos y mostrar el listado DESPUÉS de que se haya terminado de introducir postulantes.
Es decir, al terminar introduciendo "Fin" (en realidad debería terminar con una cadena vacía) entonces saldría en pantalla el listado de los postulantes introducidos.
Y para eso, se necesita almacenar los datos que se introducen en una o más colecciones de datos. Así tras la inserción de datos, se recorren esas colecciones y se van listando los datos que contengan

Inténtalo de esa manera y/o a ver si puedes clarificar un poco más lo que propone el enunciado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Corección Código Java

Publicado por Juan (12 intervenciones) el 03/08/2022 02:16:57
Saludos. Si ese es todo el enunciado que me proveyeron. Y me genera muchas dudas el código que escribi. No confio en lo que escribi como código. Gracias por todo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Corección Código Java

Publicado por Kabuto (1381 intervenciones) el 03/08/2022 18:44:46
Ok.
Pues entonces los requisitos nos los inventamos:
1
2
3
4
5
6
7
/*
* Requisitos.
* - Entre 20 y 45 años
* - Experiencia mínima 3 años
* - Estado civil: NO casado
* - Dispuesto a vivir en otro lugar: Si
*/

Como dije, necesitaremos un ArrayList o similar para guardar los datos de los postulantes que cumplen los requisitos.
Y como solo nos piden mostrar nombre y dirección, pues basta con construir un String con esos dos únicos datos y será lo que vayamos guardando en el ArrayList, siempre que se cumplan los requisitos.
El programa se repite hasta que al pedir nombre, se pulse ENTER dejando el campo en blanco.

Será entonces cuando se mostrará en pantalla la lista de los postulantes que han pasado los filtros y el programa terminará.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import java.util.ArrayList;
import java.util.Scanner;
 
public class ListaPostulantes {
 
	public static void main(String[] args) {
		Scanner teclado = new Scanner(System.in);
		ArrayList<String> aceptados = new ArrayList<String>();
		String nombre = "";
 
		do {
			System.out.println("\nNuevo Postulante.");
			System.out.print("Nombre: ");
			nombre = teclado.nextLine();
			if (nombre.isBlank())
				System.out.println("\nFIN de registro de postulantes.");
			else {
				System.out.print("Direccion: ");
				String direccion = teclado.nextLine();
				System.out.print("Sexo(H/M): ");
				String sexo = teclado.nextLine();
				System.out.print("Edad: ");
				int edad = Integer.parseInt(teclado.nextLine());
				System.out.print("Años de Experiencia: ");
				int experiencia = Integer.parseInt(teclado.nextLine());
				System.out.print("Estado Civil: ");
				int estado = Integer.parseInt(teclado.nextLine());
				System.out.print("Dispuesto a vivir en otro lugar (S/N): ");
				String disposicion = teclado.nextLine();
				/*
				 * Requisitos.
				 * - Entre 20 y 45 años
				 * - Experiencia minima 3 años
				 * - Estado civil: NO casado
				 * - Dispuesto a vivir en otro lugar: Si
				 */
				if (edad >= 20 && edad <= 45)
					if (experiencia >= 3)
						if (estado != 2)
							if (disposicion.equalsIgnoreCase("s"))
								aceptados.add(nombre + " -- " + direccion); //Requisitos cumplidos
			}
 
		}while (!nombre.isBlank());
 
		System.out.println("\n\tLISTA DE POSTULANTES QUE CUMPLEN REQUISITOS");
		for(String aceptado: aceptados)
			System.out.println("--> " + aceptado);
 
		System.out.println("\n\t\tFIN DE PROGRAMA");
		teclado.close();
 
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Corección Código Java

Publicado por Juan Rodriguez (12 intervenciones) el 06/08/2022 22:53:17
Gracias una vez más por su ayuda que es muy importante para mi. Por favor si me puede explicar sobre el método isBlank(). Sobre cuando y como puedo hacer uso de el. Gracias una vez más.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Corección Código Java

Publicado por Kabuto (1381 intervenciones) el 07/08/2022 14:25:35
El método isBlank() pertenece a la clase String, y devuelve TRUE si una cadena String está vacía (no tiene caracteres) o también si los caracteres que contiene son solo espacios en blanco.

Es parecido al método isEmpty(), quien devuelve TRUE si la cadena esta vacía, pero FALSE si contiene algún carácter, incluso espacios en blanco.

Ejemplos:

1
"hola caracola" ----> isBlank()? FALSE      isEmpty()? FALSE

1
"                 " ----> isBlank()? TRUE      isEmpty()? FALSE

1
"" ----> isBlank()? TRUE      isEmpty()? TRUE


Así que la usaremos para saber si una cadena está vacía o no, o si no está vacía, comprobar que no sean solo espacios en blanco.

En este ejercicio resulta útil porque nos dicen que pidamos datos en bucle hasta que el usuario pulse ENTER sin dar ningún dato, es decir, cuando nos de una cadena vacía.

Así que podríamos haber usado isEmpty().

Pero, ¿y si nos da una serie de espacios en blanco? Dicho dato tampoco nos iba a servir para nada, así que podemos considerarlo también como una señal de que el usuario ya no quiere dar más datos.

Por eso yo puse isBlank(), para que el bucle termine tanto si nos da una cadena vacía, como si nos da una serie de inútiles espacios en blanco.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar