Mis*_*kwu 2 .net c# while-loop
static void Main(string[] args)
{
string name = null, surname = null;
while (name != "A" && surname != "A")
{
Console.WriteLine("Enter Name:");
name = Console.ReadLine(); // Point A
Console.WriteLine("Enter Surname:");
surname = Console.ReadLine(); // Point B
}
Console.WriteLine("Oops");
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
循环工作正常:
输出1:
输入名字:
约翰
输入姓:
彼得
输入名字:
插口
输入姓:
安德鲁
Output2 :(尝试在A点打破循环)
输入名字:
//循环没有退出但是转到了下一个语句
输入姓:
彼得
哎呀
当我尝试在A点打破循环时,循环不会退出,而是转到下一个语句然后在B点之后退出
问题:为什么它不在点退出循环,如何让它在A点退出?
Ham*_*jam 13
在进入整个代码块之前,将完全检查循环条件,而不是在代码中的每个语句执行之后.您可以添加条件来执行第二部分或中断循环或强制检查循环条件.
打破循环:
while (name != "A" && surname != "A")
{
Console.WriteLine("Enter Name:");
name = Console.ReadLine(); // Point A
if (name == "A")
break;
Console.WriteLine("Enter Surname:");
surname = Console.ReadLine(); // Point B
}
Run Code Online (Sandbox Code Playgroud)
设置条件以执行其余代码:
while (name != "A" && surname != "A")
{
Console.WriteLine("Enter Name:");
name = Console.ReadLine(); // Point A
if (name != "A")
{
Console.WriteLine("Enter Surname:");
surname = Console.ReadLine(); // Point B
}
}
Run Code Online (Sandbox Code Playgroud)
强制检查循环条件(继续后的代码不会执行):
while (name != "A" && surname != "A")
{
Console.WriteLine("Enter Name:");
name = Console.ReadLine(); // Point A
if (name == "A")
continue;
Console.WriteLine("Enter Surname:");
surname = Console.ReadLine(); // Point B
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3653 次 |
| 最近记录: |