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

  • 相关阅读:
    Python生成器
    Python迭代器
    Python异常处理
    Python面向对象进阶
    Python面向对象基础
    Python闭包和装饰器
    Python函数
    Python文件操作
    Python深浅拷贝
    Python的列表&元组&字典&集合
  • 原文地址:https://www.cnblogs.com/baiduligang/p/4247260.html
Copyright © 2011-2022 走看看