Check below i have re-modulated your code, here and there..
#pragma config(Sensor, S3, light, sensorEV3_Ultrasonic)
#pragma config(Sensor, S4, color, sensorEV3_Color, modeEV3Color_Color)
#pragma config(Motor, motorB, B, tmotorEV3_Large, PIDControl, encoder)
#pragma config(Motor, motorC, C, tmotorEV3_Large, PIDControl, encoder)
//*!!Code automatically generated by 'ROBOTC' configuration wizard !!*//
task main()
{
//int n=0;
long red, green, blue;
// --- Initial forward, backward, turn ---
motor(B)=100;
motor(C)=100;
wait1Msec(2000);
motor(C)= -100;
motor(B)= -100;
wait1Msec(1000);
motor(C)= -100;
motor(B)=100;
wait1Msec(5000);
motor(C)= 100;
motor(B)= 100;
wait1Msec(2000);
while(1==1)
{
getColorRGB(S4,red,green,blue);
if(red>20 && green>20 && blue >20) // reverse-turn - white line
{
motor(C)= -100;
motor(B)= -100;
wait1Msec(1000);
motor(C)= -100;
motor(B)=100;
wait1Msec(5000);
motor(C)= 100;
motor(B)= 100;
wait1Msec(2000);
}
while(getUSDistance(light)>40) //scan
{
motor(C)=-100;
motor(B)=100;
}
while(getUSDistance(light)<40) //attack
{
motor(C)=100;
motor(B)=100;
}
}
}