C#标签和转到

C#标签和转到,c#,C#,这是我的全部课程。显然我是个初学者。我面临的问题是,如果年龄小于零,它会返回几行,但它会再次向用户索要pin码(我能做些什么来解决这个问题 using System; namespace Examples { class Program { static void Main(string[] args) { string name;

这是我的全部课程。显然我是个初学者。我面临的问题是,如果年龄小于零,它会返回几行,但它会再次向用户索要pin码(我能做些什么来解决这个问题

 using System;

    namespace Examples
    {
        class Program
        {
            static void Main(string[] args)
            {
                string name;
                string city;
                int age;
                int pin;

                // \n is used for line-break
                Console.Write("Enter your name :  ");
                name = Console.ReadLine();

                Console.Write("\nEnter Your City :  ");
                city = Console.ReadLine();

                age:
                Console.Write("\nEnter your age :  ");
                age = Int32.Parse(Console.ReadLine());

                Console.Write("\nEnter your pin :  ");
                pin = Int32.Parse(Console.ReadLine());

                if (age < 0 || age >= 110)
                {
                    goto age;

                }


                // Printing message to console
                //formatting output
                Console.WriteLine("==============");
                Console.WriteLine("Your Complete Address:");
                Console.WriteLine("============\n");

                Console.WriteLine("Name = {0}", name);
                Console.WriteLine("City = {0}", city);
                Console.WriteLine("Age = {0}", age);
                Console.WriteLine("Pin = {0}", pin);
                Console.WriteLine("===============");

                Console.ReadLine();
            }
        }
    }
使用系统;
名称空间示例
{
班级计划
{
静态void Main(字符串[]参数)
{
字符串名;
字符串城市;
智力年龄;
int引脚;
//\n用于换行符
控制台。写(“输入您的姓名:”);
name=Console.ReadLine();
控制台。写(“\n输入您的城市:”);
city=Console.ReadLine();
年龄:
控制台。写(“\n输入您的年龄:”);
age=Int32.Parse(Console.ReadLine());
控制台。写(“\n输入pin:”);
pin=Int32.Parse(Console.ReadLine());
如果(年龄<0 | |年龄>=110)
{
后藤时代;
}
//将消息打印到控制台
//格式化输出
Console.WriteLine(“=========================”);
Console.WriteLine(“您的完整地址:”);
Console.WriteLine(“=========================\n”);
WriteLine(“Name={0}”,Name);
Console.WriteLine(“City={0}”,City);
WriteLine(“Age={0}”,Age);
WriteLine(“Pin={0}”,Pin);
Console.WriteLine(“=========================”);
Console.ReadLine();
}
}
}

您可以将pin设置为-1,然后对照它进行检查

而且,你可能会因为那句“后藤”的话而卷入一场宗教战争……:) 通常情况下,这是不赞成的,当然可以避免在这里,但有些人会说这是好的。真的由你决定

我将把一些代码放在一起并粘贴它

void Main()
{
    string name;
    string city;
    int age;
    int pin;

    // \n is used for line-break
    Console.Write("Enter your name :  ");
    name = Console.ReadLine();

    Console.Write("\nEnter Your City :  ");
    city = Console.ReadLine();

    age = GetAge();

    //... eluded

Console.ReadLine();
}

// Define other methods and classes here
private int GetAge() {
    Console.Write("\nEnter your age :  ");
    int age = -1;
    while (age <0 || age>110) {
        age = Int32.Parse(Console.ReadLine());
    }
    return age;
}
void Main()
{
字符串名;
字符串城市;
智力年龄;
int引脚;
//\n用于换行符
控制台。写(“输入您的姓名:”);
name=Console.ReadLine();
控制台。写(“\n输入您的城市:”);
city=Console.ReadLine();
年龄=年龄();
//…逃避
Console.ReadLine();
}
//在此处定义其他方法和类
私有int GetAge(){
控制台。写(“\n输入您的年龄:”);
int age=-1;
而(110岁){
age=Int32.Parse(Console.ReadLine());
}
回归年龄;
}

在这种情况下,使用方法更合适:)

因此,如果我理解正确,如果年龄小于0或大于110,是否要提示输入年龄

首先,不要使用标签,它们很难看,您不想使用它们,相反,您可以使用do while循环,但有很多可能性:

此外,您还可以使用
控制台.WriteLine

string name;
string city;
int age;
int pin;

// \n is used for line-break
Console.Write("Enter your name :  ");
name = Console.ReadLine();

Console.Write("\nEnter Your City :  ");
city = Console.ReadLine();
age = -1;

while (age < 0 || age >= 110)
{
    Console.Write("\nEnter your age :  ");
    age = Int32.Parse(Console.ReadLine());

    if (age < 0 || age >= 110)
    {
        Console.WriteLine("The age must be between 0 and 110.");
    }
}


Console.Write("\nEnter your pin :  ");
pin = Int32.Parse(Console.ReadLine());


// Printing message to console
//formatting output
Console.WriteLine("==============");
Console.WriteLine("Your Complete Address:");
Console.WriteLine("============\n");

Console.WriteLine("Name = {0}", name);
Console.WriteLine("City = {0}", city);
Console.WriteLine("Age = {0}", age);
Console.WriteLine("Pin = {0}", pin);
Console.WriteLine("===============");

Console.ReadLine();
字符串名;
字符串城市;
智力年龄;
int引脚;
//\n用于换行符
控制台。写(“输入您的姓名:”);
name=Console.ReadLine();
控制台。写(“\n输入您的城市:”);
city=Console.ReadLine();
年龄=-1岁;
而(年龄<0 | |年龄>=110)
{
控制台。写(“\n输入您的年龄:”);
age=Int32.Parse(Console.ReadLine());
如果(年龄<0 | |年龄>=110)
{
Console.WriteLine(“年龄必须介于0和110之间”);
}
}
控制台。写(“\n输入pin:”);
pin=Int32.Parse(Console.ReadLine());
//将消息打印到控制台
//格式化输出
Console.WriteLine(“=========================”);
Console.WriteLine(“您的完整地址:”);
Console.WriteLine(“=========================\n”);
WriteLine(“Name={0}”,Name);
Console.WriteLine(“City={0}”,City);
WriteLine(“Age={0}”,Age);
WriteLine(“Pin={0}”,Pin);
Console.WriteLine(“=========================”);
Console.ReadLine();

Goto标签是C语言一开始就遗留下来的一个相当古老的标签,您应该避免使用它。您可以通过实现一个循环来实现这一点

Console.WriteLine("Enter your pin :  ");
pin = Int32.Parse(Console.ReadLine());
while (age < 0 || age >= 110)
{
   Console.WriteLine("Enter your age :  ");
   int age = Int32.Parse(Console.ReadLine());
}
Console.WriteLine(“输入您的pin:”);
pin=Int32.Parse(Console.ReadLine());
而(年龄<0 | |年龄>=110)
{
控制台。WriteLine(“输入您的年龄:”;
int age=Int32.Parse(Console.ReadLine());
}

你可以在这里使用函数概念,你应该使用函数

            Console.Write("\nEnter your age :  ");
            age = Int32.Parse(Console.ReadLine());
            if (age < 0 || age >= 110)
            {
               //show error msg

            }
            Console.Write("\nEnter your pin :  ");
            pin = Int32.Parse(Console.ReadLine());

           //if every data is corrent - run function
           showinfo();   
////////////
           showinfo()
           { 
            Console.WriteLine("==============");
            Console.WriteLine("Your Complete Address:");
            Console.WriteLine("============\n");

            Console.WriteLine("Name = {0}", name);
            Console.WriteLine("City = {0}", city);
            Console.WriteLine("Age = {0}", age);
            Console.WriteLine("Pin = {0}", pin);
            Console.WriteLine("===============");

            Console.ReadLine();}
Console.Write(“\n输入您的年龄:”);
age=Int32.Parse(Console.ReadLine());
如果(年龄<0 | |年龄>=110)
{
//显示错误消息
}
控制台。写(“\n输入pin:”);
pin=Int32.Parse(Console.ReadLine());
//如果每个数据都正确-运行函数
showinfo();
////////////
showinfo()
{ 
Console.WriteLine(“=========================”);
Console.WriteLine(“您的完整地址:”);
Console.WriteLine(“=========================\n”);
WriteLine(“Name={0}”,Name);
Console.WriteLine(“City={0}”,City);
WriteLine(“Age={0}”,Age);
WriteLine(“Pin={0}”,Pin);
Console.WriteLine(“=========================”);
Console.ReadLine();}
如@noctis所述,应避免使用goto。。它会产生问题。。。
另外,请检查-NegativeNumber异常概念…您也可以使用自己的异常

只需在pin提示之前移动您的条件即可

age:
Console.Write("\nEnter your age :  ");
age = Int32.Parse(Console.ReadLine());

if (age < 0 || age >= 110)
{
    goto age;
}

Console.Write("\nEnter your pin :  ");
pin = Int32.Parse(Console.ReadLine());
年龄:
控制台。写(“\n输入您的年龄:”);
age=Int32.Parse(Console.ReadLine());
如果(年龄<0 | |年龄>=110)
{
后藤时代;
}
控制台。写(“\n输入pin:”);
pin=Int32.Parse(Console.ReadLine());

噢,请不要使用
goto
语句您的新功能,但您会想尽快失去对
goto
的兴趣:)goto不好,您应该感觉不好。将
if
语句向前移动两行。学习使用
while
而不是
goto
。祝你好运。这只是为了教育目的吗?学习,但要做