if_icmpne : jump if two integers are not equal : index : visitJumpInsn()

Description
if_icmpne pops the top two ints off the stack and compares them. If the two integers are not equal, execution branches to the address (pc + branchoffset), where pc is the address of the if_icmpne opcode in the bytecode and branchoffset is a 16-bit signed integer parameter following the if_icmpne opcode in the bytecode. If the integers are equal, execution continues at the next instruction.

If you are using Jasmin, branchoffset is computed for you from the address of <label>.
Example
    bipush 2        ; push the int 2 onto the stack
    iload_1         ; push the int value in local variable 1 onto the stack
    if_icmpne Label ; if the value of local variable 1 does not equal 2, jump to Label
    return          ; return if local variable 1 equals 2
Label:
    ; execution continues here if local variable 1 does not equals 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_icmplt if_icmpgt if_icmple if_icmpge
Stack
Before After
value1 ...
value2 ...
... ...
Bytecode
Type Description
u1 if_icmpne opcode = 0xA0 (160)
s2 branchoffset