if_icmpgt : jump if one integer is greater than another : index : visitJumpInsn()

Description
if_icmpgt pops the top two ints off the stack and compares them. If value2 is greater than value1, execution branches to the address (pc + branchoffset), where pc is the address of the if_icmpgt opcode in the bytecode and branchoffset is a 16-bit signed integer parameter following the if_icmpgt opcode in the bytecode. If value2 is less than or equal to value1, execution continues at the next instruction.

If you are using Jasmin, branchoffset is computed for you from the address of <label>.
Example
    iload_1         ; push the integer value of local variable 1 onto the stack
    bipush 2        ; push the integer 2 onto the stack
    if_icmpgt Label ; if the value of local variable 1 is greater than 2, jump to Label
    return          ; return if local variable 1 <= 2
Label:
    ; execution continues here if local variable 1 is geater than 2...
Notes
Addresses are measured in bytes from the start of the bytecode (i.e. address 0 is the first byte in the bytecode of the currently executing method).
See also
if_icmpeq if_icmpne if_icmplt if_icmple if_icmpge
Stack
Before After
value1 ...
value2 ...
...
Bytecode
Type Description
u1 if_icmpgt opcode = 0xA3 (163)
s2 branchoffset