c# console Framework.net 如何在登录页面的开头转到程序的开头而不关闭程序

问题描述 投票:0回答:1

我需要做到这一点,以便当我注销时,程序循环回到开头,重置登录数据(重新启动循环),并且我的尝试重置为 0,并且必须再次登录,现在我使用环境退出,但是我不被允许使用它。这是一个学校项目,我对 c# 非常陌生

我的代码:

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel.Design;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using static System.Net.Mime.MediaTypeNames;

namespace GIMPIES1
{
    internal class Program
    {
        static bool ingelogd = false;
        static void Main(string[] args)  
        {
            //Zorgt ervoor dat de schoenen in de voorraad begint met 0//

            int aantal1 = 0;
            int aantal2 = 0;
            int aantal3 = 0;
            int aantal4 = 0;

            //Login pogingen teller// 
            int loginAttempts = 0;

            // 3 pogingen //
            for (int i = 0; i < 3; i++)
            {
                //inlogpagina// 

                string login = "inkoop";
                string password = "gimpies_inkoop";

                Console.Clear();
                Console.WriteLine("Voeg je gebruikersnaam in.");
                string inputlogin = Console.ReadLine();
                Console.WriteLine("Voeg wachtwoord in");
                string inputpassword = Console.ReadLine();

                //Hier checkt die of inputlogin gelijk is aan login en inputpassword gelijk is aan password. Als het gelijk is dan gaat die door en anders gaat die naar de else if.//

                if (inputlogin == login && inputpassword == password)
                {
                    Console.Clear();
                    Console.WriteLine("Inloggen gelukt");
                    Console.WriteLine("Klik op enter om door te gaan");
                    Console.ReadLine();

                    //while loop zorgt ervoor dat wnr ik op enter klik in een schoenvoorraad dat die niet uit gaat loggen maar dat die in de menu blijft//
                    while (inputlogin == login && inputpassword == password)
                    {
                        Menu();
                    }
                }
                //Als inputlogin niet = aan login/ inputpassword niet = password dan voegt die 1 poging toe 1 waarde toe aan loginattempts++//
                else if (inputlogin != login && inputpassword != password)
                {
                    //voegt die 1 poging toe aan totaal//
                    loginAttempts++;
                    Console.Clear();
                    Console.WriteLine("Inloggen niet gelukt");
                    Console.ReadKey();
                }

                //laat de resultaat zien//
                if (loginAttempts > 3)
                {
                    Console.Clear();
                    Console.WriteLine("Programma gaat afsluiten u heeft al uw pogingen gebruikt. ");
                    Console.ReadKey();
                }
            }

            //menu nadat je goed hebt ingelogd//
            void Menu()
            {
                //opties menu//
                Console.Clear();
                Console.WriteLine("1. Voorraad schoenen bekijken");
                Console.WriteLine("2. Schoenen inkopen");
                Console.WriteLine("3. uitloggen");
                Console.WriteLine("Maak uw menukeuze en klik op ENTER");
                int schoenvoorraad = Convert.ToInt32(Console.ReadLine());
                Console.Clear();
                switch (schoenvoorraad)
                {
                    //paginas in de menu//
                    //Nadat je keuze 1 maakt in de menu//
                    case 1:
                        Console.WriteLine("1. Nike, Airmax");
                        Console.WriteLine("2. Nike, Jordan");
                        Console.WriteLine("3. Adidas, yeezys");
                        Console.WriteLine("4. Converse, Allstars");

                        Console.Write("Kies je schoenensoort");
                        int keuze = int.Parse(Console.ReadLine());
                        //Schoenen en hun informatie//
                        switch (keuze)
                        {
                            //int is 0 en aantallen zorgen ervoor dat het start op 0 en dat je het kan vullen wanneer je wilt.//
                            case 1:
                                Console.WriteLine("Merk. Nike");
                                Console.WriteLine("Type. Air Max");
                                Console.WriteLine("Maat. 42");
                                Console.WriteLine("Kleur. Rood");
                                Console.WriteLine("Aantal " + aantal1);
                                Console.WriteLine("Prijs. 50,00");
                                break;
                            case 2:
                                Console.WriteLine("Merk. Nike");
                                Console.WriteLine("Type. Jordan");
                                Console.WriteLine("Maat. 41");
                                Console.WriteLine("Kleur.Zwart");
                                Console.WriteLine("aantal " + aantal2);
                                Console.WriteLine("Prijs. 140");
                                break;
                            case 3:
                                Console.WriteLine("Merk. Adidas");
                                Console.WriteLine("Type. Yeezys");
                                Console.WriteLine("Maat. 40");
                                Console.WriteLine("Kleur. Grijs");
                                Console.WriteLine("aantal " + aantal3);
                                Console.WriteLine("Prijs 230");
                                break;
                            case 4:
                                Console.WriteLine("Merk. Converse");
                                Console.WriteLine("Type. Allstars");
                                Console.WriteLine("Maat. 43");
                                Console.WriteLine("Kleur. Wit");
                                Console.WriteLine("aantal " + aantal4);
                                Console.WriteLine("Prijs 165");
                                break;
                        }
                        break;

                    //Schoenen inkopen//
                    // wat je ziet wanneer je schoenen probeert in te kopen//
                    case 2:
                        Console.WriteLine("1. Nike, Airmax");
                        Console.WriteLine("2. Nike, Jordan");
                        Console.WriteLine("3. Adidas, yeezys");
                        Console.WriteLine("4. Converse, Allstars");
                        Console.WriteLine("Kies de schoenen dat je wilt kopen");
                        //wat je ziet wanneer je een optie kiest van de schoen dat je wilt inkopen//
                        //aantal zorgt ervoor dat je het kan inkopen//
                        int inkoop = int.Parse(Console.ReadLine());
                        switch (inkoop)
                        {
                            case 1:
                                Console.WriteLine("Hoeveel aantal schoenen wil je inkopen? = " +  aantal1);
                                aantal1 = aantal1 + Convert.ToInt32(Console.ReadLine());
                                break;
                            case 2:
                                Console.WriteLine("Hoeveel aantal schoenen wil je inkopen? = " +  aantal2);
                                aantal2 = aantal2 + Convert.ToInt32(Console.ReadLine());
                                break;
                                
                            case 3:
                                Console.WriteLine("Hoeveel aantal schoenen wil je inkopen? = " +  aantal3 );
                                aantal3 = aantal3 + Convert.ToInt32(Console.ReadLine());
                                break;
                            case 4:
                                Console.WriteLine("Hoeveel aantal schoenen wil je inkopen? = " + aantal4);
                                aantal4 = aantal4 + Convert.ToInt32(Console.ReadLine());
                                break;
                            //wanneer je een schoen hebt gekozen gaat die weer terugloopen naar de menu met een while loop//
                        }

                        break;
                    case 3:
                    
                    break;
                }
                Console.ReadLine();
            }
        }
    }
}

我尝试了环境退出、系统退出和appication.restart

c# console frameworks
1个回答
0
投票

现在我尝试尽可能接近您的原始代码/进行最小的更改。

在 Menu 方法的开头我添加了

bool hasLoggedOut = false;
在该方法的末尾我添加了
return hasLoggedOut
。当然,这也意味着我将菜单从 void 更改为 bool。

然后在你的情况3(你想注销)中,我只需将 hasLoggedOut 设置为 true

case 3:
    hasLoggedOut = true;
    break;

您调用菜单的部分我更改为

bool keepRunning = true;

while (keepRunning)
{
    keepRunning = !Menu();
}
                    
i = -1;
loginAttempts = 0;
continue;

Continue 只是告诉循环跳过其余操作并从顶部开始,就好像它已经运行过一次一样。 i=-1 存在,因此在 continue 调用之后

i++
将 i 变为 0

© www.soinside.com 2019 - 2024. All rights reserved.