Reading and writing to the same Arduino Pin

Is it possible to use digital read and digital write on the same pin within in loop statement ? A snap shot of the code im currently using is below:

No. You can do a digitalRead on pin-8 using another pin but you can't use pin-8 to test if pin-8 is high.
First of all because it is either an OUTPUT AND HIGH/LOW or it is INPUT and can be used to test ANOTHER pin .
Second, from a programming standpoint, this question would never be asked because if you are interested in the STATE of pin-8
then you would create a boolean flag (google "arduino Boolean") called STATE8 and set it to TRUE immediate after you set pin 8 to
HIGH, and set to FALSE immediately after setting pin 8 to LOW. Then you simply say
if (STATE8) //If STATE8=TRUE
If you wanted test it for FALSE you would
If (! =STATE8) see example below:

  True if the operand is false, e.g.
if (!x)
    { 
        // ...
    }

Furthermore, your approach suggests you're waiting till the last second to take action in the case of a temperature increase.
The standard approach would be to test the temp to see if it is increasing, not just if it equals some maximum.
so at time T1, test temp.
T2 test temp (falling/same/increasing) [you could have a boolean flag for each if you wanted]
T3 test temp (increasing ? ===> set increasing flag ( TRISING = TRUE) // set TRISING flag)
T4 test temp (increasing?====>Elapsed time (based on millis() since temp STARTED rising ?
T5 test temp (increasing? ====> If temp rising longer than x milliseconds , then ==> fan ON.
T6 test temp (decreasing ? ===> set TFALLING flag

TRISING = FALSE;
TFALLING = TRUE;

do the same thing as above for falling, but use the elapsed time to decide when to turn fan off.

This should prevent it from ever getting to 30 degrees.