首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

while下数值更新有关问题 新人

2013-09-05 
while下数值更新问题新人求助#includestdio.hint main(void){int sum 0,a 1,bwhile(a6){b a * 2

while下数值更新问题 新人求助
#include<stdio.h>

int main(void)
{
    int sum = 0,a = 1,b;
 
    while(a<6)
             { 
                b = a * 2;
                sum = b + sum;
                a++;
                printf("%d is sum\n",sum);
             }
                
    return 0;
}


求解,怎么使每次循环过后 使 sum的值仍为 0?
          我承认  我看书就犯困所以用这中方式来学习必要的语法知识,请见谅。。while下数值更新有关问题    新人


[解决办法]

不要使用
while (条件)
更不要使用
while (组合条件)
要使用
while (1) {
 if (条件1) break;
 //...
 if (条件2) continue;
 //...
 if (条件3) return;
 //...
}
因为前两种写法在语言表达意思的层面上有二义性,只有第三种才忠实反映了程序流的实际情况。
典型如:
下面两段的语义都是当文件未结束时读字符
whlie (!feof(f)) {
 a=fgetc(f);
 //...
 b=fgetc(f);//可能此时已经feof了!
 //...
}
而这样写就没有问题:
whlie (1) {
 a=fgetc(f);
 if (feof(f)) break;
 //...
 b=fgetc(f);
 if (feof(f)) break;
 //...
}
类似的例子还可以举很多。

[解决办法]
引用:
Quote: 引用:

不要使用
while (条件)
更不要使用
while (组合条件)
要使用
while (1) {
 if (条件1) break;
 //...
 if (条件2) continue;


 //...
 if (条件3) return;
 //...
}
因为前两种写法在语言表达意思的层面上有二义性,只有第三种才忠实反映了程序流的实际情况。
典型如:
下面两段的语义都是当文件未结束时读字符
whlie (!feof(f)) {
 a=fgetc(f);
 //...
 b=fgetc(f);//可能此时已经feof了!
 //...
}
而这样写就没有问题:
whlie (1) {
 a=fgetc(f);
 if (feof(f)) break;
 //...
 b=fgetc(f);
 if (feof(f)) break;
 //...
}
类似的例子还可以举很多。



       while 的组合方法怎么这么多,? 
             我那为什么 我的结果和其他网友的不一样。?   别人的正常,而我的就...


重新编译一次!单步调试! 
while (条件)  
do -- while(条件)  
就这样而已!没有楼上说的那么乱,杂!

热点排行