美文网首页
条件跳转指令

条件跳转指令

作者: Shaw_Young | 来源:发表于2021-09-08 18:28 被阅读0次

    条件跳转指令通常和比较指令结合使用。在条件跳转指令执行前,一般可以先用比较指令进行栈顶元素的准备,然后进行条件跳转。
    条件跳转指令有:ifeq、iflt、ifle、ifne、ifgt、ifge、ifnull、ifnonnull。这些指令都接收两个字节的操作数,用于计算跳转的位置(16位符号整数作为当前位置的offset)。
    它们的统一含义为:弹出栈顶元素,测试它是否满足某一条件,如果满足条件,则跳转到给定位置。

    具体说明:

    指令 描述
    ifeq 当栈顶int类型数值等于0时跳转
    ifne 当栈顶int类型数值不等于0时跳转
    iflt 当栈顶int类型数值小于0时跳转
    ifle 当栈顶int类型数值小于等于0时跳转
    ifgt 当栈顶int类型数值大于0时跳转
    ifge 当栈顶int类型数值大于等于0时跳转
    ifnull 为null时跳转
    ifnonnull 不为null时跳转

    注意:

    1.与前面运算规则一致:

    • 对于boolean、byte、char、short类型的条件分支比较操作,都是使用int类型的比较指令完成。
    • 对于long、float、double类型的条件分支比较操作,则会先执行相应类型的比较运算指令,运算指令会返回一个整型到操作数栈中,随后再执行int类型的条件分支比较操作来完成整个分支跳转。

    2.由于各类型的比较最终都会转为int类型的比较操作,所以Java虚拟机提供的int类型的条件分支指令是最为丰富和强大的。

    梦想很模糊,去追,它会渐变清晰。青春励志,奋斗下去别放弃。

    相关文章

      网友评论

          本文标题:条件跳转指令

          本文链接:https://www.haomeiwen.com/subject/gldpwltx.html