
Switch - Case - Menu multiple
Publicado por frik_1 (1 intervención) el 10/03/2014 16:05:02
Buenas, soy eze y aprendiendo a programar en C#.
He estado buscando algo de info sobre un menu de seleccion que no puedo terminar de armar.
Después de tanto buscar no me queda otra que preguntar porque ya le he dado vueltas y ahora me he liado aún más.
Podrían darme una mano por favor?
La idea es, tener un menu principal (menu1) en el cual tengo una opción que me lleva a un segundo menu (menu2) y teniendo la posibilidad desde este menu de volver al menu1.
A continuación adjunto el código.
Gracias y salud2.
He estado buscando algo de info sobre un menu de seleccion que no puedo terminar de armar.
Después de tanto buscar no me queda otra que preguntar porque ya le he dado vueltas y ahora me he liado aún más.
Podrían darme una mano por favor?
La idea es, tener un menu principal (menu1) en el cual tengo una opción que me lleva a un segundo menu (menu2) y teniendo la posibilidad desde este menu de volver al menu1.
A continuación adjunto el código.
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
using System;
using System.Diagnostics;
namespace TestLog
{
class Program
{
static void Main()
{
Menu();
}
static void Menu()
{
char opcion;
do
{
Console.Clear();
Console.WriteLine("\t************************");
Console.WriteLine("\t* 1- OPCION1 *");
Console.WriteLine("\t* 2- OPCION2 *");
Console.WriteLine("\t* ..- OPCION.. *");
Console.WriteLine("\t* ..- OPCION.. *");
Console.WriteLine("\t* N - Configurar Parametr *");
Console.WriteLine("\t************************");
Console.WriteLine("\t* [0]- Salir *");
Console.WriteLine("\t************************");
Console.Write("Opcion: ");
do {
opcion = Console.ReadKey(true).KeyChar;
} while(opcion <'0' || opcion > 'N'); //N cualquier valor dependiendo del menu
Console.WriteLine(opcion + "\n");
switch (opcion)
{
case '1':
Process.Start("cmd.exe", "dir");
break;
case '2':
Process.Start("cmd.exe", "dir");
break;
case '3':
funcionM();
break;
}
}while (opcion!='0');
}
static void funcionM()
{
char opcion2;
do
{
Console.Clear();
Console.WriteLine("\t************************");
Console.WriteLine("\t* Configuracion Param *");
Console.WriteLine("\t************************");
Console.WriteLine("\t* [1]- Opcion1 *");
Console.WriteLine("\t* [2]- OPCION2 *");
Console.WriteLine("\t* [3]- OPCION3 *");
Console.WriteLine("\t* [..]- OPCION.. *");
Console.WriteLine("\t* [..]- OPCION.. *");
Console.WriteLine("\t* [10]- Volver al menu prin *");
Console.WriteLine("\t* [N]- OPCIONN *");
Console.WriteLine("\t************************");
Console.Write("Opcion: ");
do {
opcion2 = Console.ReadKey(true).KeyChar;
} while( (opcion2 <'0') || (opcion2 > '10')); //ESTO se que está mal, pero no sé cómo hacer para que me tome los valores de 2 cifras. El error que me devuelve es: Demasiados caracteres en literal de caracter - CS012
Console.WriteLine(opcion2 + "\n");
switch(opcion2)
{
case '1': //Aqui me da problemas con el Case, me dice que 1 ya fue usado antes ... :S El error que me devuelve es: Demasiados caracteres en literal de caracter - CS012
Process.Start("cmd.exe", "dir");
break;
case '2':
Process.Start("cmd.exe", "dir");
break;
case '12':
Menu();
break;
}
}while(!='10');
//}
}
/*static void Salir()
{
Console.Clear();
Console.WriteLine("Salir");
}*/
}
}
Gracias y salud2.
Valora esta pregunta


0