一个简单的问题: for循环

priceyao 2009-08-14 02:30:29

//先是一个判断的循环:
for(int i=0;i<num;i++)
{
if(string[i]=="信春哥得永生")
{
//记住哪些 i 是"信春哥得永生"
}
}

//然后到了操作循环:
for(int i=0;i<count;i++)
{
//跳过那些"信春哥得永生"的 i 再操作
//就是跳过之前记住的那些 i
}



这个怎么写的? 我要直接跳过那些判断过的i 不带入第二个循环
...全文
175 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
ivws_19 2009-08-14
  • 打赏
  • 举报
回复
在第一个循环里先把那些符合的去掉
Hide1984 2009-08-14
  • 打赏
  • 举报
回复
不好意思,有个注释加错地方了。
第二个for

for (int i = 0; i < count; i++)
{
//跳过那些"信春哥得永生"的 i 再操作
//就是跳过之前记住的那些 i
for (int j = 0; j < doubleCheck; j++)
{
if (i == numberList[j])
{
Console.WriteLine(i);
break;
}
}
//对那些"不信春哥得永生"的 i 操作
Console.WriteLine("不信春哥的{0}", i);

}


输出结果
5
7
Hide1984 2009-08-14
  • 打赏
  • 举报
回复

class ParameterTest
{
public static void Main()
{
int num = 10;
int count = 8;
string[] test = new string[] { "a", "b", "c", "d", "b", "信春哥得永生", "b", "信春哥得永生", "信铁哥得永生", "信春哥得永生" };
List<int> numberList = new List<int>();

//先是一个判断的循环:
for (int i = 0; i < num; i++)
{
if (test[i] == "信春哥得永生")
{
//记住哪些 i 是"信春哥得永生"
numberList.Add(i);
}
}

//然后到了操作循环:
int doubleCheck = count > numberList.Count ? numberList.Count : count;
for (int i = 0; i < count; i++)
{
//跳过那些"信春哥得永生"的 i 再操作
//就是跳过之前记住的那些 i
for (int j = 0; j < doubleCheck; j++)
{
if (i == numberList[j])
{
Console.WriteLine(i);
break;
}
//对那些"不信春哥得永生"的 i 操作
}

}
Console.ReadKey();

}

chills66 2009-08-14
  • 打赏
  • 举报
回复
建议lz在一个循环里做。。。
Skyhoo 2009-08-14
  • 打赏
  • 举报
回复
你这里分开循环了 只能goto 走回来了
yuanhuiqiao 2009-08-14
  • 打赏
  • 举报
回复
如果数组一直固定的话,可以把上次检出的数组下标记下来,之后的循环可以以此来判断是否continue。不过感觉还是始终得做循环,效率上没啥进展
houjinjia 2009-08-14
  • 打赏
  • 举报
回复
ding
  • 打赏
  • 举报
回复
ding
priceyao 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 qq904492758 的回复:]
在定义个数组
int n=0;
string[] str=new string[];
//先是一个判断的循环:
for(int i=0;i <num;i++)
{
    if(string[i]=="信春哥得永生")
    {
        //记住哪些 i 是"信春哥得永生"
    }
  else
  {
  str[n]=string[n];
  n++;}
}

//然后到了操作循环:
for(int i=0;i <count;i++)
{
    //跳过那些"信春哥得永生"的 i 再操作
    //就是跳过之前记住的那些 i
  //判断str
  if(str[i]=="不是信春哥得永生")
  {}


}
//虽然笨 应该符合要求把
[/Quote]
本来想不开string[]跳过去,看来也只能这样啊
atszpp 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 qq904492758 的回复:]
在定义个数组
int n=0;
string[] str=new string[];
//先是一个判断的循环:
for(int i=0;i <num;i++)
{
    if(string[i]=="信春哥得永生")
    {
        //记住哪些 i 是"信春哥得永生"
    }
  else
  {
  str[n]=string[n];
  n++;}
}

//然后到了操作循环:
for(int i=0;i <count;i++)
{
    //跳过那些"信春哥得永生"的 i 再操作
    //就是跳过之前记住的那些 i
  //判断str
  if(str[i]=="不是信春哥得永生")
  {}


}
//虽然笨 应该符合要求把
[/Quote]



Lovely_baby 2009-08-14
  • 打赏
  • 举报
回复
if(string[i]!="信春哥得永生")
{
//记住哪些 i 是"信春哥得永生"
}
zhengqian529 2009-08-14
  • 打赏
  • 举报
回复
那就if判断,然后goto跳过吧。
qq904492758 2009-08-14
  • 打赏
  • 举报
回复
在定义个数组
int n=0;
string[] str=new string[];
//先是一个判断的循环:
for(int i=0;i<num;i++)
{
if(string[i]=="信春哥得永生")
{
//记住哪些 i 是"信春哥得永生"
}
else
{
str[n]=string[n];
n++;}
}

//然后到了操作循环:
for(int i=0;i<count;i++)
{
//跳过那些"信春哥得永生"的 i 再操作
//就是跳过之前记住的那些 i
//判断str
if(str[i]=="不是信春哥得永生")
{}


}
//虽然笨 应该符合要求把
priceyao 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jianchun_liu 的回复:]
Continue
[/Quote]
continue不行 我不是跳过这个i 我是要在第一个循环判断出来之后的i 第二个循环就不运行了
xzq686 2009-08-14
  • 打赏
  • 举报
回复

//先是一个判断的循环:
string strI="";
for(int i=0;i<num;i++)
{
if(string[i]=="信春哥得永生")
{
//记住哪些 i 是"信春哥得永生"
strI+=","+i.ToString();
}
}

strI=strI+",";
//然后到了操作循环:
for(int i=0;i<count;i++)
{
//跳过那些"信春哥得永生"的 i 再操作
//就是跳过之前记住的那些 i
if(strI.IndexOf(","+ i.ToString() +",")==-1)
{
//这里就是跳过可以操作的地方..
}
}


priceyao 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bitcoffee 的回复:]
break
[/Quote]
break就退出了,有些我需要的

比如: 1,2,3,4,5,6,7,8,9,10
我只是不要3,5,7
其他循环我还是要做的
BitCoffee 2009-08-14
  • 打赏
  • 举报
回复
用个数组记住即可
jianchun_ 2009-08-14
  • 打赏
  • 举报
回复
Continue
dong547785510 2009-08-14
  • 打赏
  • 举报
回复
先确定下总共有几个“信春哥得永生”?
然后看怎么操作。
BitCoffee 2009-08-14
  • 打赏
  • 举报
回复
break

110,552

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧