黑马程序员技术交流社区

标题: 写出程序结果。如何分析这道题? [打印本页]

作者: 官珺伟    时间: 2014-1-1 17:16
标题: 写出程序结果。如何分析这道题?
本帖最后由 官珺伟 于 2014-1-2 07:59 编辑

  1. <p> </p>
复制代码

6.写出程序结果。
class Demo
{
public static void main(String[] args)
{
  int x = 1;
  for(show('a'); show('b') && x<3; show('c'))
  {
   show('d');
   x++;
  }
}
public static boolean show(char ch)
{
  System.out.println(ch);
  return true;
}
}

作者: 伍艳雄    时间: 2014-1-1 17:28
  会编译出错...for(true;条件;true)是不行的.
作者: daoyua    时间: 2014-1-1 17:38
结果是abdcbdc,调用一次show()方法会打印字母,返回1,看X值会循环2次,第一次循环是abdc,第二次是bdc,你把show看成1就行了
作者: daoyua    时间: 2014-1-1 17:41
结果是abdcbdcb,少个B,哈哈马虎了,分析方法就这样
作者: daoyua    时间: 2014-1-1 17:43
还有问题么
作者: IT人    时间: 2014-1-1 17:56
像这样的题,你就按照常规的for循环走就行了打印结果是a
b
d
c
b
d
c
b

作者: 晏勇    时间: 2014-1-1 18:19
a
b
d
c
b
d
c
b
for循环第一次的执行顺序是先执行show(a) show(b)如果这两个条件返回的是true则执行show(d)再执行show(c);第二次循环则跳过了show(a),直接判断show(b)与x<3的条件 执行show(d)..show(c)...以此类推
作者: 净坛使者    时间: 2014-1-1 18:38
结果abdcbdcb
作者: 肖银    时间: 2014-1-1 21:04
本帖最后由 肖银 于 2014-1-1 21:47 编辑

按for循环执行顺序
下面图中用数字标明了执行顺序

for循环执行顺序.png (49.98 KB, 下载次数: 60)

for循环执行顺序.png





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2