{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Döngülerde kullanılan ifadeler : break ve continue " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Bu videoda döngülerde kullanılabilen *break* ve *continue* ifadelerini öğrenmeye çalışacağız. Bu ifadeleri kullanarak döngü yapılarını daha efektif kullanabiliriz." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### break ifadesi" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "break ifadesi döngülerde programcılar tarafından en çok kullanılan ifadedir. Anlamı şu şekildedir;\n", "\n", " Döngü herhangi bir yerde ve herhangi bir zamanda break ifadesiyle karşılaştığı zaman\n", " çalışmasını bir anda durdurur. Böylelikle döngü hiçbir koşula bağlı kalmadan sonlanmış olur.\n", " \n", " \n", "break ifadesi **sadece ve sadece** içindeki bulunduğu döngüyü sonlandırır. Eğer iç içe döngüler bulunuyorsa ve en içteki döngüde break kullanılmışsa sadece içteki döngü sona erer. Örneklerle *break* ifadesini anlamaya çalışalım.\n", " \n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "1\n", "2\n", "3\n", "4\n", "5\n", "6\n", "7\n", "8\n", "9\n", "10\n", "11\n", "12\n", "13\n", "14\n", "15\n", "16\n", "17\n", "18\n", "19\n" ] } ], "source": [ "i = 0 # Bu döngüyü biliyoruz.\n", "\n", "while (i < 20):\n", " print(i)\n", " i +=1" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "1\n", "2\n", "3\n", "4\n", "5\n", "6\n", "7\n", "8\n", "9\n", "10\n" ] } ], "source": [ "i = 0 # break kullanmaya çalışalım.\n", "\n", "while (i < 20):\n", " print(i)\n", " if (i == 10):\n", " break # i'nin değeri 10 olunca bu koşul sağlanıyor ve break ifadesiyle karşılaşıldığı için döngü anında sona eriyor.\n", " i +=1" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "2\n", "3\n", "4\n" ] } ], "source": [ "# for döngüsüyle break kullanalım.\n", "liste = [1,2,3,4,5,6,7,8,9]\n", "for i in liste:\n", " if (i == 5):\n", " \n", " break\n", " print(i)\n", " " ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "İsminiz(Çıkmak için q tuşuna basın.):q\n", "Çıkış yapılıyor...\n" ] } ], "source": [ "\n", "\n", "while True: # Sonsuz döngü. Nasıl sonlandırabiliriz ? \n", " isim = input(\"İsminiz(Çıkmak için q tuşuna basın.):\")\n", " if (isim == \"q\"): # break ile tabii ki.\n", " print(\"Çıkış yapılıyor...\")\n", " break\n", " print(isim)\n", " \n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "İşte *break* ifadesi bu kadar ! Şimdi de continue ifadesine bakalım." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### continue ifadesi\n", "*continue* ifadesi *break*'e göre biraz daha az kullanılan bir ifadedir. Anlamı şu şekildedir;\n", " \n", " Döngü herhangi bir yerde ve herhangi bir zamanda continue ifadesiyle karşılaştığı zaman geri kalan işlemlerini\n", " yapmadan direk bloğunun başına döner.\n", " \n", "*continue* ifadesini anlamak için örneklerimize bakalım.\n", "\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "i: 1\n", "i: 2\n", "i: 3\n", "i: 4\n", "i: 5\n", "i: 6\n", "i: 7\n", "i: 8\n", "i: 9\n", "i: 10\n" ] } ], "source": [ "liste = [1,2,3,4,5,6,7,8,9,10]\n", "\n", "for i in liste: # Bunu biliyoruz.\n", " print(\"i:\",i)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "i: 1\n", "i: 2\n", "i: 4\n", "i: 6\n", "i: 7\n", "i: 8\n", "i: 9\n" ] } ], "source": [ "liste = [1,2,3,4,5,6,7,8,9] # continue kullanalım.\n", "\n", "\n", "for i in liste:\n", " if (i == 3 or i == 5):\n", " continue\n", " print(\"i:\",i)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*continue* ifadesi while döngüleriyle kullanıldıkları zaman **sonsuz döngü** olayına yol açabilmektedir. Anlamak için örneğimize bakalım.\n", "\n", "**Jupyterde sonsuz döngüyü çalıştırdığımızda , programı durdurmak için ilk olarak yukarıdaki \"Kernel\" e gidelim ve Interrupta tıklayalım. Bir kaç saniye bekledikten sonra \"Restart\" a tıklayalım. Böyle bir durumda Jupyter tekrar kendine gelecektir.**" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "i = 0 # Bu kodda Sonsuz döngü olayı neden oluşur ? Bu kodu çalıştırmayalım.\n", "\n", "# Eğer çalıştırırsak sonsuz döngüyü \"Kernel\" sekmesinde \n", "\n", "while (i < 10):\n", " print(i)\n", " \n", " if (i == 2):\n", " continue\n", " \n", " i += 1" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "i: 0\n", "i: 1\n", "i: 3\n", "i: 4\n", "i: 5\n", "i: 6\n", "i: 7\n", "i: 8\n", "i: 9\n" ] } ], "source": [ "i = 0 # Kodun sorunsuz hali\n", "\n", "while (i < 10):\n", " \n", " if (i == 2):\n", " i += 1 # Artırma işlemi\n", " continue\n", " \n", " print(\"i:\",i)\n", " i += 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "İşte *break* ve *continue* ifadeleri bu şekillerde kullanılmaktadır. Kısım sonundaki alıştırmalarla bu konuyu daha iyi kavrayacağız." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.1" } }, "nbformat": 4, "nbformat_minor": 2 }