Script/while loop not returning correct value

Ruchi Kumari1
Tera Expert

Hi,
I am trying a simple logic to retrieve values from table but I am not getting expected return. 

var machine_name = '';
var serial_number = '';
var reqUser = '';
var grMRVSAnswers1 = new GlideRecord('sc_multi_row_question_answer');
grMRVSAnswers1.addQuery('row_index=' + rowIndex); // There are 3 records in the table for the row id passed
grMRVSAnswers1.query();
while (grMRVSAnswers1.next()) {
    if ((grMRVSAnswers1.getDisplayValue('item_option_new') == 'Machine/Asset Names')) {
        machine_name = grMRVSAnswers1.value;
        gs.print(machine_name); // Getting Expected value : Machine123
    } else if ((grMRVSAnswers1.getDisplayValue('item_option_new') == 'Serial Number') ) {
        serial_number = grMRVSAnswers1.value;
        gs.print(serial_number );//Getting Expected Value : SerialNumber123
    } else if ((grMRVSAnswers1.getDisplayValue('item_option_new') == 'Requested For')) {
        reqUser = grMRVSAnswers1.value;
        gs.print(reqUser);//Getting Expected Value : RK123
    }
}
gs.print('reqUser ' + reqUser); //Returned Value : RK123
gs.print('machine_name ' + machine_name);////Returned Value : RK123 ??
gs.print('serial_number ' + serial_number);//Returned Value : RK123 ??


Not sure why are machine names and serial number variables getting override with userid when I am getting correct logs for individual if-else statement. What am I missing here ?