Estoy trabajando en una encuesta de 5 preguntas con opciones multiples de respuesta pero me ha salido vastante codigo con varios if y me gustaria saber si puedo evitar digitar los mismo(reducir codigo para que se vea mas ordenado), usando algun metodo o de otra forma:
anexo el codigo que tengo hasta ahorita:
static void Main(string[] args)
{
Double p1a = 0;
int p1b = 0,p1c = 0
,p2a = 0,p2b = 0,p2c = 0
,p3a = 0,p3b = 0,p3c = 0
,p4a = 0,p4b = 0,p4c = 0
,p5a = 0,p5b = 0,p5c = 0;
Double porcenc;
int encuesta = 0;
bool Rp1 = true,Rp2 = true,Rp3 = true, Rp4 = true, Rp5= true;
while (true) // repeticion indefinida
{
while (Rp1 == true)
{
encuesta += 1;//contador numero encuestas
Console.WriteLine("Encuesta: "+encuesta);
//Pregunta 1
Console.WriteLine("1- ¿Te gustan la bebidas gaseosas?:" + "\n\n a- no" + "\n b- si" + "\n c- Talvez"); // captura
Console.WriteLine("\nDigite una opcion(a,b o c) para continuar con la siguiente pregunta o exit para terminar");
string line = Console.ReadLine(); // toma valor digitado
if (line == "a" || line == "b" || line == "c")
{
Rp1 = false;
}
if (line == "exit") // Chequea si desa terminar
{
return;
}
else
Console.Clear();
Console.WriteLine(line + "\tno es una opcion valida\n");//evalua respuesta valida
if (line == "a")
{
p1a += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine(" Escogiste la opcion:'a'="+p1a);
}
if (line == "b")
{
p1b += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine(" Escogiste la opcion:'b' ="+p1b);
}
if (line == "c")
{
p1c += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta c ="+p1c);
}
}
//pregunta 2
while (Rp2 == true)
{
Console.WriteLine("\n2- ¿Cual es tu sabor favorito?:" + "\n\n a- Coca" + "\n b- Pepsi" + "\n c- Otro");
Console.WriteLine("Digite una opcion(a,b o c) para continuar con la siguiente pregunta o exit para terminar");
string line2 = Console.ReadLine(); // Tomando dato
if (line2 == "a" || line2 == "b" || line2 == "c")
{
Rp2 = false;
}
if (line2 == "exit") // Chequea si desa terminar
{
return;
}
else
Console.Clear();
Console.WriteLine(line2 + "\tno es una opcion valida\n");//evalua respuesta valida
if (line2 == "a")
{
p2a += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta a =" + p2a);
}
if (line2 == "b")
{
p2b += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta b =" + p2b);
}
if (line2 == "c")
{
p2c += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta c =" + p2c);
}
}
//pregunta 3
while (Rp3 == true)
{
Console.WriteLine("\n3- ¿Cuantas veces al dia la consumes?:" + "\n\n a- Una" + "\n b- Mas" + "\n c- Menos");
Console.WriteLine("Digite una opcion(a,b o c) para continuar con la siguiente pregunta o exit para terminar");
string line3 = Console.ReadLine(); // Tomando datos
if (line3 == "a" || line3 == "b" || line3 == "c")
{
Rp3 = false;
}
if (line3 == "exit") // Chequea si desa terminar
{
return;
}
else
Console.Clear();
Console.WriteLine(line3 + "\tno es una opcion valida\n");//evalua respuesta valida
if (line3 == "a")
{
p3a += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta 3a =" + p3a);
}
if (line3 == "b")
{
p3b += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta 3b =" + p3b);
}
if (line3 == "c")
{
p3c += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta 3c =" + p3c);
}
}
//pregunta 4
while (Rp4 == true)
{
Console.WriteLine("\n4- ¿Cuantas veces a la semana la consumes?:" + "\n\n a- Una" + "\n b- Mas" + "\n c- Menos");
Console.WriteLine("Digite una opcion(a,b o c) para continuar con la siguiente pregunta o exit para terminar");
string line4 = Console.ReadLine(); // tomando datos
if (line4 == "a" || line4 == "b" || line4 == "c")
{
Rp4 = false;
}
if (line4 == "exit") // Chequea si desa terminar
{
return;
}
else
Console.Clear();
Console.WriteLine(line4 + "\tno es una opcion valida\n");//evalua respuesta valida
if (line4 == "a")
{
p4a += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta 4a =" + p4a);
}
if (line4 == "b")
{
p4b += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta 4b =" + p4b);
}
if (line4 == "c")
{
p4c += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta 4c =" + p4c);
}