Ditt problem är att variabeln s aldrig blir null. Eftersom du tilldelar den input värdet från tangentbordet. prova
String s = input.readLine();
if (s.equals(""))
break;
alltså en tom sträng, vilket den är om input inte innehåller något. Strängen blir endast null om du deklarerar variabeln men inte tilldelar den ett värde. För övrigt bör man ha för vana att deklarera variabeln utanför loopen och sedan tilldela den ett värde i loopen. Nu för tiden hanterar oftast kompilatorn detta men tidigare och i andra mer primitiva språk allokerar du nytt arbetsminne för variabeln i varje iteration . Man bör även generellt försöka undvika att basera villkor på "nullkonditions". Man vill inte ha NULL värden i sitt program utan endast fånga upp och hantera dessa i ett exception om de skulle uppstå. Man bör sikta på att en variabel aldrig har värdet NULL eller aldrig används/utvärderas om det inte blivit tilldelat. Vissa klasser har inbyggda metoder som hanterar detta som t.ex. "isEmpty()" eller liknande, vilket oftast är en mer utvecklad variant av en "nullcheck".
Edit: insåg att tidigare inlägg och förklarade detta, bara jag som läste lite hastigt...
Mvh Oscar