Loop in a Text-Based RPG

So, I am working on my first RPG. Nothing fancy so far... I haven't developed a story or anything, just trying to get the gameplay hammered out. Anyway, I have a couple of NPCs and Items and I was wondering how I should program these interactive spots. I'm unsure whether I should loop the Room info or continue forward with if statements. With Items, I want to prevent the player trying to use the option to get the item again (after you pick up the item, the option is gone. Here are a couple examples of where I have the problem

1234567891011121314151617181920

elseif(playerloc == 3)
{
cout << "There is a hooded figure in the corner. "
<< "The person waves you over.\n";
cout << "There are exits along the North and South walls.\n";
cout << "1. Talk to the figure\n2. Go North\n3. Go South\n"
cin >> userInput;
if(userInput == 1)
{
cout << "There are hidden secrets in this dungeon.\nCome back to me when "
<< "you have the dungeon key."
<< " I will equip to face the Dungeon Lord\n"/*More code for when the key is acquired.
Figure will tell you how to access the secret room*/
}
elseif(userInput == 2) playerloc = 2;
elseif(userInput == 3) playerloc = 4;
}

What I want to do after the character interaction is complete is continue forward with the option to go south or east. I could return to the room menu, or continue by coding forward and allow the option to go east or south with more if-else-if chains... which would be the best approach?

In the next bit, I want to program the item to be picked up and then the treasure chest will be empty. What would be the best way to do this?