SoloCodigo
CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: MarkiiAk en Lunes 19 de Abril de 2010, 09:56
-
using System;
using System.Collections.Generic;
using System.Text;
namespace Celculadora
{
class Program
{
public string a;
public void seleccion()
{
b:
Console.WriteLine("Que Opcion Deseas Elegirn1.Suman2.Resta");
a = Console.ReadLine();
if ((a != "1") & (a != "2"))
{
Console.Clear();
Console.WriteLine("Eliga una opcion correcta");
Console.Clear();
goto b;
}
else
{
switch (a)
{
case "1":
Console.WriteLine("Hola1");
break;
case "2":
Console.WriteLine("Hola 2");
break;
}
}
}
private void suma()
{
//esto se muestra aunque yo no quiera por eso lo puse "private" pero no funciono
Console.WriteLine("Caso uno?");
}
private void resta()
{
//esto se muestra aunque yo no quiera por eso lo puse "private" pero no funciono
Console.WriteLine("Caso dos?");
}
static void Main(string[] args)
{
Program markii = new Program();
markii.seleccion();
markii.suma();
markii.resta();
Console.Read();
}
}
}
lo que pasa es que...el case 1 i dos si ejecutan su metodo respectivamente el problema es cuando termina el case...se vuelve a mostrar "Hola1" y "Hola2" es lo que no quiero qe vuelva a aparecer lo que dice el metodo...solo una ves...i solo si c manda a llamar
-
vos estás llamando los dos métodos aquí!
static void Main(string[] args)
{
Program markii = new Program();
markii.seleccion();
markii.suma();
markii.resta();
Console.Read();
}
cada vez que se ejecuta tu programa su punto de entrada es por Main o sea que lo que vos tenes en ese método principal (Main) se ejecuta siempre creo que lo queres es algo como esto:
using System;
using System.Collections.Generic;
using System.Text;
namespace Celculadora
{
class Program
{
public string a;
public void seleccion()
{
b:
Console.WriteLine("Que Opcion Deseas Elegirn1.Suman2.Resta");
a = Console.ReadLine();
if ((a != "1") & (a != "2"))
{
Console.Clear();
Console.WriteLine("Eliga una opcion correcta");
Console.Clear();
goto b;
}
else
{
switch (a)
{
case "1":
suma();
Console.WriteLine("Hola1");
break;
case "2":
resta();
Console.WriteLine("Hola 2");
break;
}
}
}
private void suma()
{
Console.WriteLine("Caso uno?");
}
private void resta()
{
Console.WriteLine("Caso dos?");
}
static void Main(string[] args)
{
seleccion();
Console.Read();
}
}
}
otra cosa vos pusiste un if() cuando se ingrese una opción que no sea ni 1 ni 2 creo que sería mejor que uses un "default"
estoy un poco falto de practica pero creo que era algo así:
fijate googlealo entra por def. cuando la opción ingresada no es ning de los case:
switch(a)
{
case 1:
break;
case 2:
break;
default:
}
espero te sea de ayuda saludos!!!
-
en lo del default tienes razon...solo que decidi usar el if...para no usar el defaul...osea hacerlo un poco mas complicado..si bien pude haber hecho los 3 metodos en uno solo lo hice en 3 distintos para mas dificultad