zoukankan      html  css  js  c++  java
  • java面试题之分析(二)

    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

  • 相关阅读:
    Android的activity的生命周期
    COCOS学习笔记--重力感应Acceleration
    【深入了解cocos2d-x 3.x】定时器(scheduler)的使用和原理探究(2)
    cocos2d-x改底层之获取UIListView的实际内容大小
    Android 使用ListView的A-Z字母排序功能实现联系人模块
    Netty3 源代码分析
    A002-开发工具介绍
    数据结构:二叉树(前,中,后,层次)非递归遍历。
    jQuery开发之Ajax
    cocos2d-x-3.6 引擎概述
  • 原文地址:https://www.cnblogs.com/baiduligang/p/4247260.html
Copyright © 2011-2022 走看看