他的想法是输入一个文本文件和一个单词编号。该软件将写入一个新文件,该文件包含文本但每行的单词数量(他输入的内容)以及其他一些细节。
这个想法就是这个,我让他成了黑名单。黑名单从文件加载到富文箱中,并在关闭应用程序时保存。
问题是我已经设置了所有东西(一个检查单词是否在黑盒中的函数)。
软件看起来像这样:
foreach (string word in words)
{
int blacklist = 0;
if (FindMyText(word))
{
blacklist = 1;
MessageBox.Show("Current word: " + word + " is blacklisted!");
}
else
MessageBox.Show("Word: " + word);
// the code here ... for writing in file and all that
}
函数FindMyText(word)告诉我这个单词是否在黑名单中。
如果该函数返回true,我想转到下一个单词,但实际上不知道如何执行此操作。
如果你有一些想法,那真的会帮助我。
谢谢你们。
答案 0 :(得分:1)
在foreach循环或任何其他循环中,您可以使用continue
跳到下一次迭代,所以在您的情况下,您可以执行
foreach (string word in words)
{
var blacklist = 0;
if (FindMyText(word))
{
blacklist = 1;
MessageBox.Show("Current word: " + word + " is blacklisted!");
continue;
} else {
//...
}
}
答案 1 :(得分:1)
您可以添加“继续”关键字以跳到foreach迭代中的下一个元素。
foreach (string word in words)
{
int blacklist = 0;
if (FindMyText(word))
{
blacklist = 1;
MessageBox.Show("Current word: " + word + " is blacklisted!");
// skip to the next element
continue;
}
MessageBox.Show("Word: " + word);
// the code here ... for writing in file and all that
}
或者你可以分开foreach身体:
foreach (string word in words)
{
int blacklist = 0;
if (FindMyText(word))
{
blacklist = 1;
MessageBox.Show("Current word: " + word + " is blacklisted!");
}
else
{
MessageBox.Show("Word: " + word);
// the code here ... for writing in file and all that
}
}
这完全取决于“其他”部分有多长。如果它真的很长,那么使用continue会更具可读性,将重点放在跳过部分上。
答案 2 :(得分:1)
您已经拥有逻辑,只需添加continue
:
continue语句将控制权传递给它出现的封闭迭代语句的下一次迭代。它采用以下形式:
if (FindMyText(word))
{
blacklist = 1;
MessageBox.Show("Current word: " + word + " is blacklisted!");
continue;
}
else
{
MessageBox.Show("Word: " + word);
AddWordToFile(word); // not black listed;
}
http://msdn.microsoft.com/en-us/library/923ahwt1(v=vs.71).aspx
答案 3 :(得分:0)
我不是100%确定我理解,但我认为你想要的是“继续”关键字。
一旦循环的迭代完成,它将再次开始,直到迭代用完为止。
所以在你的IF / Else语句中,你想强制循环进入下一个单词,你输入continue;。这将忽略循环中的所有前面的代码并跳转到下一个迭代。
这有意义吗?