返回值为布尔型引起歧义的面试题

1、问题源代码

/**
 *
 * @title:BooleanReturn.java
 * @Package:com.you.model
 * @Description:<h3>一句话描写叙述功能</h3>
 * @author:游海东
 * @date:2015-3-12下午10:01:48
 * @version V1.0
 *
 */
package com.you.model;

/**
 *
 * 项目名称:SSH
 * 类名称:BooleanReturn
 * 类描写叙述:
 * 创建人:游海东
 * 创建时间:2015-3-12下午10:01:48
 * 改动人:游海东
 * 改动时间:2015-3-12下午10:01:48
 * 改动备注:
 * @version V1.0
 *
 */
public class BooleanReturn 
{
	/**
	 * 
	 * 方法名:booleanValue
	 * 方法类型:BooleanReturn
	 * 參数:@param ch
	 * 參数:@return
	 * @return :boolean
	 * @throws
	 */
	public static boolean booleanValue(char ch)
	{
		System.out.println(ch);
		return true;
	}
	
	/**
	 * 
	 * 方法名:main
	 * 方法类型:BooleanReturn
	 * 參数:@param args
	 * @return :void
	 * @throws
	 */
	public static void main(String[] args) 
	{
		int x = 0;
		for(booleanValue('A');booleanValue('B')&&(x<2);booleanValue('C'))
		{
			x++;
			booleanValue('D');
		}
	}

}

2、执行结果

A
B
D
C
B
D
C
B

3、结果说明

(1)运行for循环,booleanValue('A')打印字母‘A’;

         booleanValue('B')打印字母‘B’;

         因为x=0,x<2为true。运行循环体,booleanValue('D')打印字母‘D’;

        接着调用booleanValue('C')打印字母‘C’

(2)booleanValue('B')打印字母‘B’;

         因为x=1,x<2为true,运行循环体,booleanValue('D')打印字母‘D’;

        接着调用booleanValue('C')打印字母‘C’

(3)booleanValue('B')打印字母‘B’。

        因为x=2,x<2为false。退出循环

        所以执行的结果为:ABDCBDCB

原文地址:https://www.cnblogs.com/bhlsheji/p/5147315.html