关于循环条件 新手救助。

LI-O 2013-08-24 01:36:21
代码一
#include<stdio.h>
int main(void)
{
int num;
int xh;

while (scanf ("%d\n",&num),xh == 0);
{
printf(" yes , enter cycle!\n");
}

printf("no Cycle\n",num);
return 0;
}



运行结果
我输入了 20
14
输出了
yes , enter cycle!
no Cycle


我 在循环条件那里将 xh == 0。后来有改成了 xh = 0 都不行,
不是 值为0 时 为假吗。
按理说不应该 出现 yes ,enter cycle 啊。
好像是语法哪里出了问题。 求解
...全文
113 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
LI-O 2013-08-24
  • 打赏
  • 举报
回复
引用 8 楼 max_min_ 的回复:
[quote=引用 7 楼 w15tp 的回复:] [quote=引用 6 楼 max_min_ 的回复:]

 int xh = 1; //初始化下xh,
 while (scanf ("%d\n",&num),xh  == 0);
判断为 0 可以实现 循环不运作?[/quote] 对的, 因为xh =1 ,不等于0 表达式为假 不进入循环体了。 这里有个逗号表达式,最后取后面的结果的,[/quote] 谢了
max_min_ 2013-08-24
  • 打赏
  • 举报
回复
引用 7 楼 w15tp 的回复:
[quote=引用 6 楼 max_min_ 的回复:]

 int xh = 1; //初始化下xh,
 while (scanf ("%d\n",&num),xh  == 0);
判断为 0 可以实现 循环不运作?[/quote] 对的, 因为xh =1 ,不等于0 表达式为假 不进入循环体了。 这里有个逗号表达式,最后取后面的结果的,
LI-O 2013-08-24
  • 打赏
  • 举报
回复
引用 6 楼 max_min_ 的回复:

 int xh = 1; //初始化下xh,
 while (scanf ("%d\n",&num),xh  == 0);
判断为 0 可以实现 循环不运作?
max_min_ 2013-08-24
  • 打赏
  • 举报
回复

 int xh = 1; //初始化下xh,
 while (scanf ("%d\n",&num),xh  == 0);
LI-O 2013-08-24
  • 打赏
  • 举报
回复
引用 4 楼 max_min_ 的回复:
[quote=引用 3 楼 w15tp 的回复:] [quote=引用 2 楼 max_min_ 的回复:]

  while (scanf ("%d\n",&num),xh  == 0);
// 除掉分号吧! == 是判断, = 是赋值
  while (scanf ("%d\n",&num),xh  == 0)
修改后 为什么输入两个数字后才显示结果?? 比如, 输入 1 2 NO ..C..[/quote]

  int xh = 0; //初始化下xh,
   while (scanf ("%d\n",&num),xh  == 0);//一直循环操作了
//不清楚你的目的是啥,说说你目的吧
[/quote] 我是想通过在 while 条件里的 xh == 0 来使循环不成立。
max_min_ 2013-08-24
  • 打赏
  • 举报
回复
引用 3 楼 w15tp 的回复:
[quote=引用 2 楼 max_min_ 的回复:]

  while (scanf ("%d\n",&num),xh  == 0);
// 除掉分号吧! == 是判断, = 是赋值
  while (scanf ("%d\n",&num),xh  == 0)
修改后 为什么输入两个数字后才显示结果?? 比如, 输入 1 2 NO ..C..[/quote]

  int xh = 0; //初始化下xh,
   while (scanf ("%d\n",&num),xh  == 0);//一直循环操作了
//不清楚你的目的是啥,说说你目的吧
LI-O 2013-08-24
  • 打赏
  • 举报
回复
引用 2 楼 max_min_ 的回复:

  while (scanf ("%d\n",&num),xh  == 0);
// 除掉分号吧! == 是判断, = 是赋值
  while (scanf ("%d\n",&num),xh  == 0)
修改后 为什么输入两个数字后才显示结果?? 比如, 输入 1 2 NO ..C..
max_min_ 2013-08-24
  • 打赏
  • 举报
回复

  while (scanf ("%d\n",&num),xh  == 0);
// 除掉分号吧! == 是判断, = 是赋值
  while (scanf ("%d\n",&num),xh  == 0)
qzf362269994 2013-08-24
  • 打赏
  • 举报
回复
while循环后面加个;你是想干嘛 这判断不是没效果了

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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