控件不能从一个事例标签落到另一个 C#
本文关键字:标签 另一个 一个 不能 控件 | 更新日期: 2023-09-27 18:37:07
嗨,我做错了什么,我在第 15 行收到错误"控制无法从一个案例标签落到另一个案例标签"(开关 (z))
using System;
namespace test
{
class MainClass
{
public static void Main (string[] args)
{
Console.WriteLine ("Velkommen til pCalc! Vælg hvad du skal I menuen:");
Console.WriteLine ("1. Phythagoras");
Console.WriteLine ("2. Cirklens areal og omkreds");
Console.WriteLine ("3. + - * eller /");
int z = Convert.ToInt32(Console.ReadLine());
switch (z)
{
case 1:
Console.WriteLine ("Her skal du angive 2 værdier, a og b for at beregne c");
Console.WriteLine ("Skriv a værdien: ");
double a = double.Parse (Console.ReadLine ());
Console.Clear ();
Console.WriteLine ("Skriv værdien for b: ");
double b = double.Parse (Console.ReadLine ());
Console.Clear ();
Console.WriteLine (Math.Sqrt((Math.Pow(a, 2))+(Math.Pow(b, 2))));
break;
case 2:
Console.WriteLine ("Skriv radius a cirklen: ");
double r = double.Parse (Console.ReadLine ());
double areal = (Math.Pow (r, 2) * Math.PI);
Console.Clear ();
Console.WriteLine (areal);
Console.WriteLine ("Vil du også vide omkredsen? Skriv 1 for Ja, 2 for Nej");
int q = Convert.ToInt32 (Console.ReadLine ());
switch (q) {
case 1:
Console.WriteLine (r * 2 * Math.PI);
break;
case 2:
break;
}
}
}
}
}
你必须用一个break
语句终止每个案例(甚至是最后一个!)。具体而言,在您的情况下:
case 2:
Console.WriteLine ("Skriv radius a cirklen: ");
double r = double.Parse (Console.ReadLine ());
double areal = (Math.Pow (r, 2) * Math.PI);
Console.Clear ();
Console.WriteLine (areal);
Console.WriteLine ("Vil du også vide omkredsen? Skriv 1 for Ja, 2 for Nej");
int q = Convert.ToInt32 (Console.ReadLine ());
switch (q) {
case 1:
Console.WriteLine (r * 2 * Math.PI);
break;
case 2:
break;
}
break; // ← mandatory!
这里有一个澄清。
这里的答案表明你必须休息一下,除了一个编码情况之外,这基本上是正确的。 如果无法访问"中断",则不需要它,将其排除在外会使编译器警告安静下来。
考虑案例是直接"返回"还是通过一系列条件"返回"。
<code>
case 1:
if (Red) { return 6;} else {return 10;}
case 2:
if (Blue) {return 4;} else {return 50;}
这两个条件条件都必须返回(或中断,我想),但只要所有代码流都让你离开开关,编译器就可以了。