典型例题示例

这曾是一道华为面试题
请问在括号中填写什么值,可以同时输出AB
public static void main(String[] args) {
if (){
System.out.println(“A”);
} else {
System.out.println(“B”);
}
}
解答:可以使用短路逻辑来处理

public static void main(String[] args) {
    if (System.out.println("A") == null) {
        System.out.println("A");
    } else {
        System.out.println("B");
    }
}

该方法是最简单的方法,当然也有别的方法可以实现
使用多线程

public static void main(String[] args) {
    if (Thread.currentThread() == null) {
        System.out.println("A");
    } else {
        System.out.println("B");
    }
}

下面是几道基础的程序题

public static void main(String[] args) {
        int x = 1,y = 1;
        // false & true
        if (x++ == 2 & ++y == 2){
        //x为先比较再运算,前半个表达式已经是false,但这是一个单与,所以后面的还是会执行
            x = 7;
        }
        System.out.println("x = " + x);
        System.out.println("y = " + y);
    }

输出结果是x=2,y=2

public static void main(String[] args) {
        int x = 1,y = 1;
        if (x++ == 2 && ++y == 2){
        //双与短路了++y,所以y值不变
            x = 7;
        }
        System.out.println("x = " + x);
        System.out.println("y = " + y);
    }

输出结果为x = 2 y =1

public static void main(String[] args) {
        int x = 1,y = 1;
        if (x++ == 1 | ++y == 1){
        //由于单或,两边都会执行,x这边表达式为true,所以条件成立,输出x=7
            x = 7;
        }
        System.out.println("x = " + x);
        System.out.println("y = " + y);
    }

输出结果为x = 7 y =2

你可能感兴趣的:(练习题,java,算法,开发语言)