Tälläinen koodi:
# -*- coding: cp1252 -*- def tulostaja(): print("Oletustulostus") def main(): jatku = True while jatku: syote = input("Anna syöte (Lopeta Lopettaa): ") if syote == "Lopeta": jatku = False break elif len(syote) > 4: print(syote) elif len(syote) < 5: tulostaja() if __name__=="__main__": main()
Miksi ohjelma ei lopu "Lopeta" komennolla jos koodi on näinpäin:
if len(syote) > 4: print(syote) elif len(syote) < 5: tulostaja() elif syote == "Lopeta": jatku = False break
Eli "lopeta" komento on elif muodossa? Tällöin tulee vaan "Anna syöte (Lopeta Lopettaa):"
Tuossa syote -pituus on 6 eli ensimmäinen vertailu toteutuu. Jos ensimmäinen toteutuu, niin elif -osia ei enää suoriteta.
TapaniS kirjoitti:
Tuossa syote -pituus on 6 eli ensimmäinen vertailu toteutuu. Jos ensimmäinen toteutuu, niin elif -osia ei enää suoriteta.
Aivan niinhän se on. Kiitos tästä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.