c# 中跳出当前循环 ,但是不中断循环的方法?

来源:百度知道 编辑:UC知道 时间:2024/05/14 11:51:07
private void 关闭所有EToolStripMenuItem_Click(object sender, EventArgs e)
{
Form[] ff2 = this.MdiChildren;

for (int i = 0; i < ff2.Length; i++)
{

Form2 f2=(Form2)ff2[i];
MessageBox.Show(f2.Text);
if (f2.Text.IndexOf('*') == -1)
{
return;
}

DialogResult dr = MessageBox.Show("文本已修改,是否保存?", "提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
switch (dr)
{
case DialogResult.Yes:
frmJishiben f = (frmJishiben)this.MdiParent;
f.save(sender, new EventArgs());
return;
case DialogResult.No:
return;

Continue

Continue 结束本次循环,并开始下次循环

continue语句只能用在while语句、do/while语句、for语句、或者for/in语句的循环体内,在其它地方使用都会引起错误!

首先更正你的一个错误,
在switch中 case 情况 下 不是使用return 而是使用break;

其次你的问题的解决办法就是将return 换成continue。

xiaogang1135 说的很有道理

continue
关键字

...
private void 关闭所有EToolStripMenuItem_Click(object sender, EventArgs e)
{
Form[] ff2 = this.MdiChildren;

for (int i = 0; i < ff2.Length; i++)
{

Form2 f2=(Form2)ff2[i];
MessageBox.Show(f2.Text);
if (f2.Text.IndexOf('*') == -1)
{
return;
}

DialogResult dr = MessageBox.Show("文本已修改,是否保存?", "提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
switch (dr)
{
case DialogResult.Yes:
frmJishiben f = (frmJishiben)this.MdiParent;
f.save(sender, new EventArgs());
return;
case DialogResult.No:
return;
case DialogResult.Canc