如何打破do while循环?

JhW*_*FJh 0 c# login text-files

我是编码新手,并且一直在尝试使用文本文件进行登录(我知道我不知道使用文本文件进行登录是不安全的)

namespace text_file_login
{
    public partial class Login : Form
    {
        public Login()
        {
            InitializeComponent();
        }

        private void btn_register_Click(object sender, EventArgs e)
        {
            StreamWriter user_reg =
                new StreamWriter(@"E:\SSD\Controled Assesment\text file login\text file login\username.txt");
            StreamWriter pass_reg =
                new StreamWriter(@"E:\SSD\Controled Assesment\text file login\text file login\password.txt");

            user_reg.WriteLine(txt_user.Text);
            user_reg.Close();
            pass_reg.WriteLine(txt_pass.Text);
            pass_reg.Close();

            MessageBox.Show("Register was sucessful");
        }

        private void btn_login_Click(object sender, EventArgs e)
        {
            string user = "";
            string pass = "";
            int user_line_number = 0;
            int pass_line_number = 0;
            StreamReader user_login =
                new StreamReader(@"E:\SSD\Controled Assesment\text file login\text file login\username.txt");
            StreamReader pass_login =
                new StreamReader(@"E:\SSD\Controled Assesment\text file login\text file login\password.txt");
            do
            {
                user = user_login.ReadLine();
                user_line_number++;
                if (user == txt_user.Text)
                {
                    do
                    {
                        pass = pass_login.ReadLine();
                        pass_line_number++;
                        if ((pass == txt_pass.Text) && (user_line_number == pass_line_number))
                        {
                            MessageBox.Show("Login was succesful");
                            //this.Close();
                        }
                        else
                        {
                            if ((user_line_number > pass_line_number) || (user_line_number < pass_line_number))
                            {
                                MessageBox.Show("Wrong Password");
                            }
                        }
                    } while (pass_login.Peek() != -1);
                }
            } while (user_login.Peek() != -1);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

登录有效,注册有效。但是,如果用户名或密码错误,我可以肯定这会永远循环。我如何结束循环,以便如果用户名或密码错误,我可以显示一个消息框?我不是很关心多个用户名,但是如果可以的话,可以解决这个问题吗?

对不起,如果这写得不好。我是初学者

Cyr*_*ral 6

如果您想“跳出”循环,那么您实际上可以这样做:

do {
    if (something)
        break;
}
while (condition)
Run Code Online (Sandbox Code Playgroud)