do...while循环跳不出去了

acrobatyuer 2007-11-27 01:27:50
code=C/C++]
string str;
do
{
cout<<"选择你要进行的操作:";
cin>>str;
}while(str[0]>'1'||str[0]<'4');
[/code]

当前循环一直跳不出去了,我把str改成整型变量后依然不能,调试运行str得到了所期望的值,但就是跳不出循环.


...全文
366 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
K_THEKING 2007-12-03
  • 打赏
  • 举报
回复
code=C/C++]
string str;
do
{
cout < <"选择你要进行的操作:";
cin> > str;
}while(str[0]> '1' ¦ ¦str[0] <'4');
[/code]
想问一下你是想要什么啊!?
或用的不太恰当把!我认为改成&&可能是你想要的结果!
>'1'||<'4'这似乎是所有的数!
一句话错在这个或上
stefaniedo 2007-11-30
  • 打赏
  • 举报
回复
code=C/C++]
string str;
do
{
cout < <"选择你要进行的操作:";
cin> > str;
}while(str[0]> '1' ¦ ¦str[0] <'4');
[/code]


'1'和'4'改成对应的1和4的ASCII码应该就可以了.
stefaniedo 2007-11-30
  • 打赏
  • 举报
回复
14 楼应该正解
stefaniedo 2007-11-30
  • 打赏
  • 举报
回复
查ACSII码, 看看1到4对应的ASCII号码是多少, 然后再比较大小, 比如 A的ASCII码是65吧, 那就
int xxx;

do
{
....
}
while( xxx>65)

不知道行不行, 没试过. 学的时候都没学好, 现在都忘了
WeinJones 2007-11-30
  • 打赏
  • 举报
回复
我有点儿思路了,但就是不知道怎么做的,对于字符串比较是不是要用ACS码呢!但具体怎么比较呢!高手快来呀!
——————————————————————————————————————————————————————————
这个自己试试不就知道了?
不用高手了,用strcmp吧!
stefaniedo 2007-11-30
  • 打赏
  • 举报
回复
没错, 运算符运用错了. 基本概念混淆了
lertulo 2007-11-29
  • 打赏
  • 举报
回复
to top
x >1 and x<4
then do sth


#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int x;
do
{
cout << "輸入你要進行的操作:" <<endl;
cin>> x;
}
while (x> 1 && x< 4 );
cout <<x;
system("PAUSE");
return EXIT_SUCCESS;
}

yuyunliuhen 2007-11-28
  • 打赏
  • 举报
回复
^_^
fang235one_ 2007-11-28
  • 打赏
  • 举报
回复
str[0]> '1' ¦ ¦str[0] <'4'
他包括所有的字符,所以无论你输入什么,都是真命题,不会退出.
Newly_Yu 2007-11-28
  • 打赏
  • 举报
回复
字符之间比较需要调用 <string.h>头文件中的 int strcmp(char*str1,char*str2)函数!如果返回值为0,则str1等于str2;如果返回值是大于0,则在比较时str2碰到与str1第一个不同字符的ASCII值小于str1的! 你再试试
RedNaptune 2007-11-28
  • 打赏
  • 举报
回复
同意2楼
hai040 2007-11-27
  • 打赏
  • 举报
回复
&&是有一个不成立就退出
string有重载[]运算符,也可用at()
acrobatyuer 2007-11-27
  • 打赏
  • 举报
回复
我有点儿思路了,但就是不知道怎么做的,对于字符串比较是不是要用ACS码呢!但具体怎么比较呢!高手快来呀!
qiuqiu173 2007-11-27
  • 打赏
  • 举报
回复
小于或等于4和大于或等于1,在数轴上是任意数啊
acrobatyuer 2007-11-27
  • 打赏
  • 举报
回复
To:5楼 brvbarstr是什么意思呀?

To:1楼 我最初的意愿是要进行输入一个小于或等于4和大于或等于1的数值,你这样可以吗?


To:2楼 要是改成&&的话那不就是有一个成立就可以退出了吗???
pptor 2007-11-27
  • 打赏
  • 举报
回复
while(str[0]> '1' | ¦str[0] <'4')
(str[0]> '1' | ¦str[0] <'4')非0
Happy_Snow110 2007-11-27
  • 打赏
  • 举报
回复
我也是新手,你声明的str是字符串,但是用的怎么是数组型的,这样可以吗??高人指教
lertulo 2007-11-27
  • 打赏
  • 举报
回复
呵呵,剛發現,樓主代碼還有邏輯問題。
hai040 2007-11-27
  • 打赏
  • 举报
回复
>'1'或<'4'肯定成立,改成&&
lertulo 2007-11-27
  • 打赏
  • 举报
回复
Dev c++通過
輸入1 or 4之外字符退出循環。


#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
string x;
do
{
cout << "輸入你要進行的操作:" <<endl;
cin>> x;
}
while (x== "1" || x=="4");
cout <<x;
system("PAUSE");
return EXIT_SUCCESS;
}

33,311

社区成员

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

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