java-控制结构--面试题

本文详细介绍了Java的三种控制结构:顺序、分支和循环结构。针对分支结构中的if-else嵌套,提出了减少嵌套的方法,如使用多态、预存分支状态等。同时,解释了switch-case的工作原理,并通过示例展示了三目运算符的用法。此外,还讨论了不同类型的循环结构,包括while、do-while和for。文章提供了面试题以加深理解,并给出了相应解答。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java三大控制结构
顺序结构
不多说,就是从头到尾的执行,
分支结构
选择分支

  • if else
    面试题:if else一般不建议超过三层,否则会严重降低代码的可读性,怎么降低嵌套次数?
  • 把接口分为外部和内部接口,所有空值判断放在外部接口完成;而内部接口传入的变量由外部接口保证不为空,从而减少空值判断。
  • 利用多态,把业务判断消除,各子类分别关注自己的实现,并实现子类的创建方法,避免用户了解过多的类。
  • 把分支状态信息预先缓存在Map里,直接get获取具体值,消除分支。
    参考链接(https://blog.youkuaiyun.com/xiaoxiaole0313/article/details/110913961),还没有接触复杂业务,理解不是很透彻。
  • if else if else if else
  • switch case a: 代码块 break;
    面试题: 猜输出
 int i = 9;
        switch (i) {
            default:
                System.out.println("default");
            case 0:
                System.out.println("zero");
                break;
            case 1:
                System.out.println("one");
            case 2:
                System.out.println("two");
        }

正确输出结果为:
在这里插入图片描述
解析:switch并不是顺序执行,执行顺序应该事判断case后的常量,发现没有9,然后进入default分支,执行完并没有发现break语句,那么将继续执行,直到碰见break语句。也就是只要进了分支,不碰到break,会把所有分支执行完成

  • 三目运算符
    用法:
int a = 10,b = 20;
int c = (b>a)? b - a:b + a;

面试题:猜输出

 Object o1 = true ? new Integer(1) : new Double(2);
 System.out.println(o1);

正确输出
在这里插入图片描述
解析:执行顺序
1, true ? new Integer(1) : new Double(2);
2,Object o1 = 赋值操作
首先三目运算符的规则是,比较基本数据类型,首先拆箱为int double,然后要求2,3表达式是同一类型,所以在编译阶段自动提升,将int类型提升到double类型,然后2,3表达式得到一个int类型的1,然后赋值给Object,此时会自动装箱为Double,输出时调用Double里重写的toString方法。

循环结构

  • while
  • do-while
  • for
  • foreach
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值