if 和 while 的使用区别

if 和 while 的使用区别欢迎使用 Markdown 编辑器项目场景 提示 这里简述项目相关背景 例如 项目场景 示例 通过蓝牙芯片 HC 05 与手机 APP 通信 每隔 5s 传输一批传感器数据 不是很大 问题描述 提示 这里描述项目中遇到的问题 例如 数据传输过程中数据不时出现丢失的情况 偶尔会丢失一部分数据 APP 中接收数据代码 Overridepubl bytes mmInStream read buffer

在使用栈来实现二叉树的中序遍历时,对于判断当前结点为空时使用 while 和 if 的结果不一样

//中序遍历 左根右

 public String inOrder(){ 
    ArrayList<E> list = new ArrayList<>(); inOrder(root,list); return list.toString(); } private void inOrder(Node root, ArrayList<E> list) { 
    LinkedList<Node> stack = new LinkedList<>(); Node mid = root; //标记遍历结点不为null 或者 栈不为空 while(mid != null || !stack.isEmpty()){ 
    //这里使用 if 的话只会出现左子树的左节点 //用while 的话能如期显示 while (mid != null){ 
    //把mid的左序列结点,全部压栈 stack.push(mid); mid = mid.left; } //出栈遍历 Node pop = stack.pop(); list.add(pop.value); //这里可以不用判断 //直接写 mid = pop.right; if (pop.right != null){ 
    mid = pop.right; } } } 

原因分析:

while和if一个是循环语句,一个是判断语句。

if 只做判断,判断一次之后,便不会再回来了
while 的话,循环,直到结果为false,才跳出来

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217438.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午9:34
下一篇 2026年3月18日 上午9:34


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号