注册 登录
编程论坛 C++教室

嵌套for变量设置的问题

y605302737 发布于 2013-04-01 10:42, 2730 次点击
1.两个for循环嵌套使用中出现冲突,如果两个循环中都使用i作为变量。则将下划线部分屏蔽不会出现问题,但不屏蔽则出现提示:
1>c:\documents and settings\administrator\my documents\visual studio 2010\projects\test\test.cpp(14): warning C4258: “i”: 忽略 For 循环中的定义;使用封闭范围中的定义
1>          c:\documents and settings\administrator\my documents\visual studio 2010\projects\test\test.cpp(9) : 忽略“i”的定义
1>          c:\documents and settings\administrator\my documents\visual studio 2010\projects\test\test.cpp(6) : 使用“i”的定义

请问下是什么原因??
程序代码:
#include <iostream>
using namespace std;

int main()
{
   for(int i=0;i!=10;i++)
   {
      // cout<<"m == "<<i+1<<endl;
       for(int i=0;i!=5;i++)
       {

           cout<<"i == "<<i<<endl;
       }
       cout<<"i == "<<i<<endl;
   }
    return 0;
}


2.能否在一个for中使用两个循环,如:
int i,m;
const int n=100;
for(i=0,m=0;i!=n,m!=n;i++,m++)
其中循环的次数相同,即都循环100次????
谢谢!!


[ 本帖最后由 y605302737 于 2013-4-1 11:50 编辑 ]
11 回复
#2
peach54602013-04-01 11:13
红色字体部分在哪里?
#3
y6053027372013-04-01 11:51
回复 2楼 peach5460
不好意思,我改成了下划线了,红色字体不知道怎么显示不出来!!
#4
TonyDeng2013-04-01 12:10
为什么要写这样的代码?编译器那是在问你到底要使用哪个变量。
#5
周骙骙2013-04-01 12:53
i重复定义了,第二个循环变量可以用j嘛
#6
周骙骙2013-04-01 13:00
如果把第二个int i=0改成i=0就是一个死循环
#7
jxlcs2013-04-02 10:48
为什么嵌套循环你要用同一个变量来控制啊
#8
邓士林2013-04-02 22:45
这样不行的,可以有两个循环变量,但是判断只能有一个,你可以用关系运算符进行连接
#9
shmilyflf2013-04-02 23:17
for(i=0,m=0;i!=n,m!=n;i++,m++)这样写是没有问题的。但是它是按最后一个来判断真假的,即这个for中是按m!=n的真假来判断的。i!=n的真假不会影响执行,但是这句会执行,
如果你把i!=n换成++i,那么每次执行这里都会给i加1。
#10
y6053027372013-04-03 16:29
回复 9楼 shmilyflf
谢谢你的回答,那我可不可以这样理解,就是for循环中的判断条件只能有一个?
#11
jxlcs2013-04-03 17:14
回复 10楼 y605302737
不能这么理解
#12
shmilyflf2013-04-04 01:26
回复 10楼 y605302737
准确的说是只有一个判断条件起作用,你要是想用多个判断条件来控制for的执行,可以用&&连接不同的判断条件
1