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

for语句里面的小问题

为了学好C 发布于 2010-08-12 11:20, 679 次点击
for(k=0,s=0;s<=num[i]k+j<=t; k+=w[i],s++)
把上面这句改成
for(k=0,s=0;s<=num[i]&&k+j<=t; k+=w[i],s++)
这两句的意思不是一样的吗???还有下面这句发的时间比上面为什么会少很多呢???
[b]
5 回复
#2
a6320340792010-08-12 11:29
,号运算符怎么会跟&&运算符一样呢,
#3
为了学好C2010-08-12 12:02
因为我执行程序是发现两个的结果一样
#4
ak4765652010-08-12 16:12
&&后只能产生1或0的结果
#5
tianxiao1102010-08-12 20:39
for(k=0,s=0;s<=num[i],k+j<=t; k+=w[i],s++)

for循环只以后面的k+j<=t,为判断标准,;s<=num[i],不起作用。
例如:#include<iostream>
using namespace std;
int main()
{
    int a,b;
    for(a=0,b=0;b<5,a<8;a++,b++)
    {cout<<"b"<<endl;}
    system("pause");
    return(0);
}
会输出8 个b
#include<iostream>
using namespace std;
int main()
{
    int a,b;
    for(a=0,b=0;b<8,a<5;a++,b++)
    {cout<<"b"<<endl;}
    system("pause");
    return(0);
}
会输出5个b
#6
tantan8212010-08-13 11:32
楼上的正解,  如果for(k=0,s=0;s<=num[i],k+j<=t; k+=w[i],s++)   s<=num[i]是不起作用的
  但如果是for(k=0,s=0;s<=num[i]&&k+j<=t; k+=w[i],s++)就必须满足s<=num[i]&&k+j<=t两个条件它才循环
1