try_catch no funciona
Publicado por César (3 intervenciones) el 25/06/2020 14:56:53
Hola a todos,
Estoy intentando hacer un ejercicio para practicar arrays. Tienes que introducir 10 números y luego el usuario ir preguntando y comprobar si existe ese número o no en el array.
El tema es que intentaba utilizar las instrucciones try y catch para controlar las excepciones por si el usuario introduce letras en lugar de números pero no logro hacerlo funcionar. Lo que sucede es que si introduzco un número que no está dentro del array me dice "formato incorrecto" cuando debería avisar de que ese número no está en el array.
Alguien me puede indicar lo que estoy haciendo mal? Le he dado vueltas y vueltas pero la verdad es que no se porqué no funciona.
El código es un poco mierder pero estoy empezando así que no me lo tengáis mucho en cuenta ;)
Muchas gracias y un saludo.
Estoy intentando hacer un ejercicio para practicar arrays. Tienes que introducir 10 números y luego el usuario ir preguntando y comprobar si existe ese número o no en el array.
El tema es que intentaba utilizar las instrucciones try y catch para controlar las excepciones por si el usuario introduce letras en lugar de números pero no logro hacerlo funcionar. Lo que sucede es que si introduzco un número que no está dentro del array me dice "formato incorrecto" cuando debería avisar de que ese número no está en el array.
Alguien me puede indicar lo que estoy haciendo mal? Le he dado vueltas y vueltas pero la verdad es que no se porqué no funciona.
El código es un poco mierder pero estoy empezando así que no me lo tengáis mucho en cuenta ;)
Muchas gracias y un saludo.
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/* Pide al usuario 10 enteros largos. A continuación, deberás pedirle un
* número y decirle si estaba entre los datos iniciales, luego pedirle otro y
* así sucesivamente, hasta que teclee la palabra "fin" en vez de un número
*
*/
using System;
class programa
{
static void Main()
{
long[] numeros = new long[10];
string respuesta = "";
long numeroUsuario = 0;
bool encontrado = false;
for (int i = 0; i < numeros.Length; i++)
{
Console.Write("Dime el número {0}: ", i+1);
numeros[i] = Convert.ToInt64(Console.ReadLine());
}
do
{
try
{
Console.WriteLine();
Console.Write ("Dime el número que quieres encontrar: ");
respuesta = Console.ReadLine();
encontrado = false;
int i = 0;
if (respuesta != "fin")
{
numeroUsuario = Convert.ToInt64(respuesta);
/* foreach (long numero in numeros)
{
if (numero == numeroUsuario)
encontrado = true;
}
*/
do
{
if (numeroUsuario == numeros[i])
{
encontrado = true;
}
i++;
}
while (i <= numeros.Length && !encontrado);
if (encontrado)
{
Console.WriteLine("Número encontrado");
}
else
{
Console.WriteLine(encontrado);
Console.WriteLine("Numero NO encontrado");
}
}
}
catch (Exception)
{
Console.Write("Formato incorrecto");
}
}
while (respuesta != "fin");
}
}
Valora esta pregunta


0