java面试题之分析(二)
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面试题之分析(二)的更多相关文章
- java面试题—精选30道Java笔试题解答(二)
摘要: java面试题-精选30道Java笔试题解答(二) 19. 下面程序能正常运行吗() public class NULL { public static void haha(){ System ...
- 史上最全最新java面试题合集二(附答案)
下面小编整理了本套java面试题全集,分享给大家,希望对大家的java学习和就业面试有所帮助. 51.类ExampleA继承Exception,类ExampleB继承ExampleA. 有如下代码片断 ...
- Java面试题合集(二)
接下来几篇文章准备系统整理一下有关Java的面试题,分为基础篇,javaweb篇,框架篇,数据库篇,多线程篇,并发篇,算法篇等等,陆续更新中.其他方面如前端后端等等的面试题也在整理中,都会有的. 注: ...
- 经典Java面试题收集(二)
经典的Java面试题(第二部分),这部分主要是与Java Web和Web Service相关的面试题. 96.阐述Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于 ...
- JAVA面试题和答案(二)
本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的章节分为上下两篇,第一篇将要讨论面向对象编程和它的特点,关于Java和它的功能 ...
- Java笔试题解析(二)——2015届唯品会校招
曾经总是看别人写的笔经面经.今天自己最终能够写自己亲身经历的一篇了 T-T. 前阵子去了唯品会的秋招宣讲会,华工场(如今才知道原来找家互联网公司工作的人好多).副总裁介绍了VIP的商业模式是逛街式的购 ...
- Java面试题精选(二)线程编程、数据库理论和Jdbc部分
—— 线程编程.数据库理论和Jdbc部分内容 —— 数据库的开发应用想必是我们日常所碰到最多的知识点了,大致可分为:oracle.MySQL.SQL Server.Hadoop. NoSQL. ...
- Java面试题详解二:java中的关键字
一,final1.被final修饰的类不可以被继承2.被final修饰的方法不可以被重写3.被final修饰的变量不可以被改变 重点就是第三句.被final修饰的变量不可以被改变,什么不可以被改变呢 ...
- 超详细的Java面试题总结(二)之Java基础知识篇
多线程和Java虚拟机 创建线程有几种不同的方式?你喜欢哪一种?为什么? 继承Thread类 实现Runnable接口 应用程序可以使用Executor框架来创建线程池 实现Callable接口. 我 ...
随机推荐
- UNIX网络编程——TCP服务器“拒绝服务攻击” 解决方案
前面的博客<<使用select和shutdown>>里面的拒绝服务型攻击也有提到. 说这是一个完全的解决方案,其实有点夸大了,但这个方案确实可以缓解TCP服务器遭受" ...
- 修改GDAL库支持IRSP6数据
使用GDAL库发现不能打开IRSP6的数据,不过看GDAL提供的文件格式里面却是支持IRSP6的数据的,具体可以参考网页http://www.gdal.org/frmt_fast.html.下面图1是 ...
- Java进阶(二十九)Could not create the view: An unexpected exception was thrown
Could not create the view: An unexpected exception was thrown 在将web项目部署到tomcat时,控制台输出以下内容: 这个问题的出现是在 ...
- Java实现二叉树的创建和遍历操作(有更新)
博主强烈建议跳过分割线前面的部分,直接看下文更新的那些即可. 最近在学习二叉树的相关知识,一开始真的是毫无头绪.本来学的是C++二叉树,但苦于编译器老是出故障,于是就转用Java来实现二叉树的操作.但 ...
- Linux Debugging(五): coredump 分析入门
作为工作几年的老程序猿,肯定会遇到coredump,log severity设置的比较高,导致可用的log无法分析问题所在. 更悲剧的是,这个问题不好复现!所以现在你手头唯一的线索就是这个程序的尸体: ...
- Linux根文件系统介绍
系统 根文件系统首先是一种文件系统,但是相对于普通的文件系统,它的特殊之处在于,它是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后 ...
- Java中Set的contains()方法
Java中Set的contains()方法 -- hashCode与equals方法的约定及重写原则 翻译人员: 铁锚 翻译时间: 2013年11月5日 原文链接: Java hashCode() a ...
- 一键安装LAMP
一键安装LAMP LAMP是Linux,Apache,MySQL和PHP合起来的简称,用于开发网站.对于初学者而言,没有什么比一键部署一个LAMP开发环境更省心的了,到下面的网址下载BitNami: ...
- UIController子类控件 UI_06
1.UIImageView 是用来显示图片的控件,相当于相框,用来显示UIImage对象 //初始化UIImage对象及为其加载图片 //第一种方式 // UII ...
- OC语言大总结(上)
根据OC学习的知识点,总结了一下,希望能帮到大家! 作者:韩俊强 未经允许,请勿转载! 关注博主:http://weibo.com/hanjunqiang 第一节类于对象 类与对象http:// ...