The first if looks funny to me !!. You are comparing a string with " == " operator to a char data type.
My guess is even the first if evaluates as false.Since base address of lap is compared to 'y' ,ASCII code 121.
Now coming to the nested if ,again your mixing types when comparing them. variable 'no' is int & '1' is char , but compiler will convert it ( '1' ) to its ASCII format ie to 49 .In short '1' will evaluate as 49 when comparison happens!!.