代码部分

wosiguwozai0133 2016-07-30 05:58:40
int read() {
int x; char ch; bool minus = false;
while (ch = getchar(), (ch<'0' || ch>'9') && ch != '-');
if (ch == '-') {
minus = true;
ch = getchar();
}
x = ch - 48;
while (ch = getchar(), ch <= '9'&&ch >= '0')x = x * 10 + ch - 48;
return minus ? -x : x;
}

怎么理解while这部分
...全文
153 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
VisualC8 2016-08-01
  • 打赏
  • 举报
回复
是多少,运行一下不就出来了.. 话说这种蹩脚代码...实际中谁真这么写 不会被揍?
wosiguwozai0133 2016-07-31
  • 打赏
  • 举报
回复
如果我输入的是1,那么x等于多少?,第二个循环岂不是无限循环了
ooolinux 2016-07-31
  • 打赏
  • 举报
回复
ch = getchar(), (ch<'0' || ch>'9') && ch != '-' 是一个逗号表达式,表达式的值等于后面部分表达式的值(true or false)
draculamx 2016-07-30
  • 打赏
  • 举报
回复
while (ch = getchar(), (ch<'0' || ch>'9') && ch != '-'); 输入一个字符,如果字符不是0-9(包含0和9)之间的数字,并且不是符号'-'(减号),继续循环(用户需要再次输入) 现在你输入:1 明显不满足条件,所以这个while执行完毕,继续执行下一条语句:if (ch == '-')
wosiguwozai0133 2016-07-30
  • 打赏
  • 举报
回复
如果输入1,那么第一个是是循环还是不循环呢?

552

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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