for循环到while循环+附加条件

时间:2010-07-20 22:14:47

标签: c loops

我有一个类似于此的循环。

int total1, total2;
for (total1 = fsize(myfile);;) {
    total2 = fsize(myfile);
    ...
    ...
    total1 = total2;
}

我想要做的是将其转换为while循环,并在结束循环之前检查一个额外的条件。

我想做这样的事情:

while((total1 = fsize(myfile)) && input = getch() != 'Q') {
    total2 = fsize(myfile);
    ...
    total1 = total2;
}

由于

4 个答案:

答案 0 :(得分:0)

也许你的意思是

while((total1 == fsize(myfile)) && ((input = getch()) != 'Q')) {
    total2 = fsize(myfile);
    ...
    total1 = total2;
}

请注意那些运算符=是赋值==是比较

答案 1 :(得分:0)

for循环total1=fsize(myfile)的'initialization'部分已成为while循环中测试条件的一部分。那是你想要的吗?

你确定你不想要这个......

total1 = fsize(myfile);

while((input = getch()) != 'Q') {
  total2 = fsize(myfile);
  ...
  total1 = total2;
}

答案 2 :(得分:0)

for循环中的初始化程序仅执行一次。 <{1}}相当于

select  
{ [Measures].[Net sales] } on columns,
{ [Time].[Week].MEMBERS } on rows
from [Sales]
where ( except([Time].[Year].MEMBERS, [Time].[Year].&[All]),
    {[Department].[Department name].&[WRO], [Department].[Department name].&[KAT]});

while

您提到添加条件for (total1 = fsize(myfile);;) {

请注意,分配(total1 = fsize(myfile); while (1) { )的优先级低于比较(input = getch() != 'Q'),因此要将=分配给!=,并检查该字符不是getch() {1}}你需要围绕分配的括号:

input

答案 3 :(得分:-1)

您可以使用for:

for(total1 = fsize(myfile); (input = getch()) != 'Q';) {
    ...
}