如何让while语句同时满足两个条件?

时间:2022-12-13 14:55:24
本人将问题编成一小程序,发现while语句只在第一个条件结束即就跳出了循环,我想让这两个条件同时满足,该如何做呢? 谢谢!

#include <stdio.h>
#include <conio.h>

void main()
{
  int a=1,b=1;
  while( a<=10 && b<=50)
  {
    a=a+1;
    b=b+1;
    printf("a: %d",a);
    printf("b: %d",b);
   }
   getch();
}

25 个解决方案

#1


&&改为||就行

#2


同上

#3


楼主的主题好像和里面的提问内容有出入吧
“如何让while语句同时满足两个条件?”是不是应该是“如何让while语句满足两个条件中的一个或多个?”
同时满足多个条件,多个条件之间用&&连接
如果多个条件中只要有一个成立即满足,多个条件之间用||连接

#4


同上

#5


你的意思用下边的代码就可以实现:
int  main(void)
{
  int a=b=1;
  while(b <= 50)
  {
    printf("a: %d",++a);
    printf("b: %d",++b);
   }
   return 0;
}

但你却没有说明白

#6


把&&换成||就可以了啊!

#7


同时满足多个条件,多个条件之间应该用"&&"连接

#8


while( a<=10 && b<=50)代表的就是同时满足两个条件。
可你需要的是只需满足一个条件,那就将&&改成||

#9


楼上说的没错!搂主结贴吧!

就不必给我分了,呵呵...

#10


??

#11


!!!!!!!!!!!!

|||||||||||||||||||||||||||

#12


#include <iostream.h>
#include <conio.h>

void main()
{
  int a=1,b=1;
  while( a<=10 || b<=50)
  {
    a=a+1;
    b=b+1;
    printf("a: %d",a);
    printf("b: %d",b);
   }
   getch();
}

#13


对不起,我可能没有很好的表达意思, 针对这个程序, 将条件改为"或者", 是没有问题的, 但是, 我只是把我实际遇到的问题用一个小程序表示出来了, 在我实际的问题中, 这两个条件必须同时满足, 我现在的问题就是在第一个条件成立后, 就跳出了循环, 而另一个还在执行条件(没有完成),就必须也跟着跳出来. 不知改如何解决?

#14


晕,既然是两个条件都要满足,当其中一个不满足时当然会退出循环。你的
“在第一个条件成立后, 就跳出了循环”我不是很懂阿,难道你的程序是在第一个条件不成立时进行循环的?

#15


同意,因为你要两个条件必须同时满足,当然在其中一个不满足的时候,程序就会跳出来啊。
抱歉,老兄, 我也刚刚试啦  真的是像你说的那样 到一个条件不满足时就跳出来啦  各位  我也想知道解决方法啦  快点想啊

#16


也许把你的问题贴出来可以说得更清楚~

#17


没看懂

#18


不如用don't do while吧!!
楼主是不是这个意思?

#19


while(b<50)
{
  {
  if(a<10)
  a=a+1;
  }
  b=b+1;
}
试一试,可以就加分!

#20


完全同意flyingdiablo(最近的你是最远的距离) 的说法!!

#21


既然二个条件都要满足,那就是说,一旦有一个不满足就玩完了。

#22


你的问题没说清!

因该是很基础的问题了!

#23


&&是都满足,||是满足一个就行

#24


我想到解决方法了,另外定义一个变量t:

int t=0;
int a=1,b=1;
while(t<=100)
{
 if(a<=10)
 {
   a=a+1;
 }
 if(b<=50)
 {
   b=b+1;
 }
 t++;
}

谢谢各位对我的启发!

#25


大虾的话好像有出入吧,用&&就是与的关系,所以已经满足了a<=10且b<=50呀,我看要么是阁下理解错了,要么是打错了!

#1


&&改为||就行

#2


同上

#3


楼主的主题好像和里面的提问内容有出入吧
“如何让while语句同时满足两个条件?”是不是应该是“如何让while语句满足两个条件中的一个或多个?”
同时满足多个条件,多个条件之间用&&连接
如果多个条件中只要有一个成立即满足,多个条件之间用||连接

#4


同上

#5


你的意思用下边的代码就可以实现:
int  main(void)
{
  int a=b=1;
  while(b <= 50)
  {
    printf("a: %d",++a);
    printf("b: %d",++b);
   }
   return 0;
}

但你却没有说明白

#6


把&&换成||就可以了啊!

#7


同时满足多个条件,多个条件之间应该用"&&"连接

#8


while( a<=10 && b<=50)代表的就是同时满足两个条件。
可你需要的是只需满足一个条件,那就将&&改成||

#9


楼上说的没错!搂主结贴吧!

就不必给我分了,呵呵...

#10


??

#11


!!!!!!!!!!!!

|||||||||||||||||||||||||||

#12


#include <iostream.h>
#include <conio.h>

void main()
{
  int a=1,b=1;
  while( a<=10 || b<=50)
  {
    a=a+1;
    b=b+1;
    printf("a: %d",a);
    printf("b: %d",b);
   }
   getch();
}

#13


对不起,我可能没有很好的表达意思, 针对这个程序, 将条件改为"或者", 是没有问题的, 但是, 我只是把我实际遇到的问题用一个小程序表示出来了, 在我实际的问题中, 这两个条件必须同时满足, 我现在的问题就是在第一个条件成立后, 就跳出了循环, 而另一个还在执行条件(没有完成),就必须也跟着跳出来. 不知改如何解决?

#14


晕,既然是两个条件都要满足,当其中一个不满足时当然会退出循环。你的
“在第一个条件成立后, 就跳出了循环”我不是很懂阿,难道你的程序是在第一个条件不成立时进行循环的?

#15


同意,因为你要两个条件必须同时满足,当然在其中一个不满足的时候,程序就会跳出来啊。
抱歉,老兄, 我也刚刚试啦  真的是像你说的那样 到一个条件不满足时就跳出来啦  各位  我也想知道解决方法啦  快点想啊

#16


也许把你的问题贴出来可以说得更清楚~

#17


没看懂

#18


不如用don't do while吧!!
楼主是不是这个意思?

#19


while(b<50)
{
  {
  if(a<10)
  a=a+1;
  }
  b=b+1;
}
试一试,可以就加分!

#20


完全同意flyingdiablo(最近的你是最远的距离) 的说法!!

#21


既然二个条件都要满足,那就是说,一旦有一个不满足就玩完了。

#22


你的问题没说清!

因该是很基础的问题了!

#23


&&是都满足,||是满足一个就行

#24


我想到解决方法了,另外定义一个变量t:

int t=0;
int a=1,b=1;
while(t<=100)
{
 if(a<=10)
 {
   a=a+1;
 }
 if(b<=50)
 {
   b=b+1;
 }
 t++;
}

谢谢各位对我的启发!

#25


大虾的话好像有出入吧,用&&就是与的关系,所以已经满足了a<=10且b<=50呀,我看要么是阁下理解错了,要么是打错了!