Determining a change on a complete I/O Port by Portmanipulation

Good evening,

I am new to C Programming language and started learning C with Arduino.

I have a small Project where I must read out a seven Segment Display.
The Display can change it´s number in a unknown sequence.
Number 0-9 are used. So I connected the Led a-f to Port C of an Arduino Mega.

I can read the complete Port by using:

uint8_t CurrentState = PINC

I would like to have a Current State and a Previous State of the Port. But in my Code Current State and a Previous State are always the same value.

void loop() {

do {
  CurrentState = PINC;              //read PortC
  Serial.print("do");               // for Debug only
} while (CurrentState != PINC);{    //take care if PortC changed
  PrevState = CurrentState;         //PervState may could useful
  CurrentState = PINC;              //read PortC
  Serial.print("current ");
  Serial.print("prev ");

Does anyone have an idea how to perform this?



while (CurrentState != PINC);

change to

while (CurrentState == PINC);  //loop until the port value changes

Thanks! That was a great help!