这是我正在写的一个程序的一部分。我的主要问题是,一旦它经过其中一个案例,滴滴就不会循环,所以它是无用的,因为它是。有什么可以帮助我的吗?(对不起,我用西班牙语写了一些变量,还有几个我创建的函数出现在cose中,这些函数在程序中工作得很好,所以我不认为它们和这个问题有什么关系)。
static void Main(string[] args)
{
int minutos_restantes = 480;
int opcion;
int valorComercial = 0;
Tarea[] listado_tareas = new Tarea[10];
CrearTareas(ref listado_tareas);
Console.WriteLine("1. Mostrar tareas. \n2. Asignar tarea \n3. Salir, \n Elige opción: ");
opcion = Convert.ToInt32(Console.ReadLine());
switch (opcion)
{
case 1:
Imprimirtareas(listado_tareas);
break;
case 2:
Console.WriteLine("Seleccionar número de tarea: ");
int n = Convert.ToInt32(Console.ReadLine())-1;
if (n < 0 || n > 10)
{
Console.WriteLine("TAREA INEXISTENTE");
}
else if (listado_tareas[n].realizada == true)
{
Console.WriteLine("TAREA YA REALIZADA");
}
else if((minutos_restantes - listado_tareas[n].tiempo) <= 0)
{
Console.WriteLine("TIEMPO INSUFICIENTE");
}
else
{
listado_tareas[n].realizada = true;
minutos_restantes -= listado_tareas[n].tiempo;
}
break;
} while (opcion != 3) ;
}
我不认为你可以在这样的开关上循环.尝试做while分开。
do
{
switch (opcion)
{
case 1:
Imprimirtareas(listado_tareas);
break;
case 2:
Console.WriteLine("Seleccionar número de tarea: ");
int n = Convert.ToInt32(Console.ReadLine())-1;
if (n < 0 || n > 10)
{
Console.WriteLine("TAREA INEXISTENTE");
}
else if (listado_tareas[n].realizada == true)
{
Console.WriteLine("TAREA YA REALIZADA");
}
else if((minutos_restantes - listado_tareas[n].tiempo) <= 0)
{
Console.WriteLine("TIEMPO INSUFICIENTE");
}
else
{
listado_tareas[n].realizada = true;
minutos_restantes -= listado_tareas[n].tiempo;
}
break;
}
}while (opcion != 3) ;
没有这样的结构。
switch
{
} while (...);
在C#中 你实际上写的是。
switch
{
}
while (...);
这也是另一种写法
switch
{
}
while (...)
{
}
我怀疑你想把你的switch语句放在一个while或者do...while循环里面。
就像这样。
int opcion = 0;
do
{
opcion = Convert.ToInt32(Console.ReadLine());
switch (opcion)
{
...
}
} while (opcion != 3);
也可以看看这个 在C#中使用Switch语句的While循环
这是个错误的代码,你有一个 switch() {}
声明 default
和那些 break
导致你跌出它的范围),以及一个 while (condition) /*do nothing*/;
声明。
其目的是 do{switch(){}}while()
?
是时候做一些阅读了...
https:/docs.microsoft.comen-usdotnetcsharplanguag-referencekeywordsswitch
https:/docs.microsoft.comen-usdotnetcsharplanguage-referencekeywordswhile。
https:/docs.microsoft.comen-usdotnetcsharplanguag-referencekeywordsdo。
你应该这样做:-
while (condition)
{
switch
{
}
}