QUESTION NO:2

package com.cdu.test;

 public class Test {

static boolean foo(char c) {

System.out.print(c);

return true;

}

public static void main( String[] argv ){

int i =0;

for ( foo('A'); foo('B')&&(i<2); foo('C')){

i++ ;

foo('D');

}

}

 What is the result?

  A. ABDCBDCB

  B. ABCDABCD

  C. Compilation fails.

  D. An exception is thrown at runtime.

哈哈.....有点蒙了吧 一般我们用的for循环都是变量在作表达式,格式都是for (int j = 0; j < argv.length; j++) {

 

} 这里用方法作为表达式,是不是特别头痛呢?万变不离其中,我们来看一下:for循环是怎么定义的:

for(表达式1;表达式2;表达式3){

若干语句

}

for语句中的复合语句:{若干语句}。称为循环体

表达式1负责完成变量的初始化。

表达式2是Boolean型的表达式,称为循环条件。

表达式3用来休整变量,该变循环条件。

什么是表达式呢?由若干个操作数和运算符构成的称为表达式,操作数可以是常量变量或又返回值的方法调用 等其他的表达式,运算符标明对操作数进行的何种操作

这下我们该明白了吧,定义是表达式 不是仅仅是变量了,方法也可以做表达式的 弄清了概念就不难了

for(A)输出为A,并返回真

for(B)输出为B,并返回真

for(C)输出为C,并返回真

for(D)输出为D,并返回真

那我们来看for循环了“for ( foo('A'); foo('B')&&(i<2); foo('C'))”第一个表达式“foo(A)”完成初始化,并输出A;第二个表达式“ foo('B')&&(i<2); “循环条件,用于控制循环次数,在条件为真的情况输出B;第三个表达式”for(D)“用于改变循环条件,输出D,i=0的时候,先初始话输出A,然后接着判断循环条件是否为真,for(B)输出B且为真,i=0<2是为真,此时执行循环体,输出D,并让i+1等于1,接着执行表达式3,并输出C;执行表达式2,判断循环条件是否为真,for(B)输出B且为真,i=1<2是为真,此时执行循环体,此时置i=2,输出D,接着执行表达式3,并输出C;执行表达式表达式2,判断循环条件是否为真,for(B)输出B且为真,i=2<2是为假,此时退出循环;

所以此题:答案为A

java面试题之分析(二)的更多相关文章

  1. java面试题—精选30道Java笔试题解答(二)

    摘要: java面试题-精选30道Java笔试题解答(二) 19. 下面程序能正常运行吗() public class NULL { public static void haha(){ System ...

  2. 史上最全最新java面试题合集二(附答案)

    下面小编整理了本套java面试题全集,分享给大家,希望对大家的java学习和就业面试有所帮助. 51.类ExampleA继承Exception,类ExampleB继承ExampleA. 有如下代码片断 ...

  3. Java面试题合集(二)

    接下来几篇文章准备系统整理一下有关Java的面试题,分为基础篇,javaweb篇,框架篇,数据库篇,多线程篇,并发篇,算法篇等等,陆续更新中.其他方面如前端后端等等的面试题也在整理中,都会有的. 注: ...

  4. 经典Java面试题收集(二)

    经典的Java面试题(第二部分),这部分主要是与Java Web和Web Service相关的面试题. 96.阐述Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于 ...

  5. JAVA面试题和答案(二)

    本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的章节分为上下两篇,第一篇将要讨论面向对象编程和它的特点,关于Java和它的功能 ...

  6. Java笔试题解析(二)——2015届唯品会校招

    曾经总是看别人写的笔经面经.今天自己最终能够写自己亲身经历的一篇了 T-T. 前阵子去了唯品会的秋招宣讲会,华工场(如今才知道原来找家互联网公司工作的人好多).副总裁介绍了VIP的商业模式是逛街式的购 ...

  7. Java面试题精选(二)线程编程、数据库理论和Jdbc部分

    —— 线程编程.数据库理论和Jdbc部分内容 ——     数据库的开发应用想必是我们日常所碰到最多的知识点了,大致可分为:oracle.MySQL.SQL Server.Hadoop. NoSQL. ...

  8. Java面试题详解二:java中的关键字

    一,final1.被final修饰的类不可以被继承2.被final修饰的方法不可以被重写3.被final修饰的变量不可以被改变  重点就是第三句.被final修饰的变量不可以被改变,什么不可以被改变呢 ...

  9. 超详细的Java面试题总结(二)之Java基础知识篇

    多线程和Java虚拟机 创建线程有几种不同的方式?你喜欢哪一种?为什么? 继承Thread类 实现Runnable接口 应用程序可以使用Executor框架来创建线程池 实现Callable接口. 我 ...

随机推荐

  1. 【unix网络编程第三版】阅读笔记(五):I/O复用:select和poll函数

    本博文主要针对UNP一书中的第六章内容来聊聊I/O复用技术以及其在网络编程中的实现 1. I/O复用技术 I/O多路复用是指内核一旦发现进程指定的一个或者多个I/O条件准备就绪,它就通知该进程.I/O ...

  2. 新手学python(3):yield与序列化

    1 Yield生成器 Yield是我在其他语言中没有见过的一个属性,算是python的一大特色,用好之后可以使代码更简洁.考虑一个简单的例子,文件的遍历.要遍历一个目录下的所有文件需要递归的操作.如果 ...

  3. Cocos2D:塔防游戏制作之旅(三)

    整合炮塔资源 为了快速开始,我们为你创建了开始的项目.它包括了一个空白的Cocos2D项目以及大多数你将在教程中使用到的资源. 所以首先下载该 开始项目 并且解压缩到你指定的位置中去. 注意:该项目的 ...

  4. 网站开发进阶(三十六)String.getBytes()方法中的中文编码问题

    String.getBytes()方法中的中文编码问题 String的getBytes()方法是得到一个系统默认的编码格式的字节数组. getBytes("utf-8")得到一个U ...

  5. 一台电脑上同启动两个Tomcat的方式,windows/Linux配置。

     安装两个jdk,一个JDK路径在:C:\ProgramFiles (x86)\Java\jdk1.7.0_25,另外一个JDK的路径在E:\UCMSServer\j2sdk 在环境变量里并设置J ...

  6. Android原生嵌入React Native

    1.首先集成的项目目录 我使用的是直接按照react-native init Project 的格式来导入的,也就是说,我的Android项目目录是跟node_modules是在一个目录下的. 我们i ...

  7. cocos2d-x初探

    今天把cocos2d-x下载下来装了准备试试. 就不用windows本了,主要想做iOS游戏,所以这里用mac. 先在http://cocos2d-x.org/download下载右边的cocos,然 ...

  8. (一)php的基本知识和一些注意点

    注意:任何程序,包括php,在运行时都在内存中进行,php代码需要被读取到内存中才能执行. [php的运行方式] 1.通过服务器(例如apache)调用. 2.通过命令行调用(不需要服务器参与,因为没 ...

  9. Dynamics CRM2013 业务规则的新建、激活与删除

    CRM2013的一个新的feature叫做业务规则,一些页面的简单的显示隐藏的控制.字段是否必填.有条件的锁定字段.错误提示等等,以前都是需要些脚本代码实现现在只需通过业务规则做一些简单的配置就可以达 ...

  10. 强力推荐各位攻城狮查看,收藏IT职业技能图谱(全套13张)

    汇集整理泛 IT 技术领域(云计算,大数据,运维,安全,开发语言,智能硬件等)学习技能图谱,帮助程序员梳理知识框架结构,并尝试提供路径指导和精华资源,方便技术人学习成长. 运维工程师必备技能 程序开发 ...