30-Days-Of-JavaScript/Turkish/06_Day_Loops/06_day_loops.md

12 KiB

30 Days Of JavaScript: Loops

Twitter Follow

Author: Asabeneh Yetayeh
January, 2020

<< Gün 5 | Gün 7 >>

Gün 5

📔 Gün 6

Döngüler

Hayatta yaptığımız aktivitelerin çoğu tekrarlarla doludur. console.log() kullanarak 0'dan 100'e çıktı almanızı istediğimi düşünün. Bu basit görevi uygulamak 2 ila 5 dakikanızı alabilir, bu tür sıkıcı ve tekrarlayan görevler döngü kullanılarak yapılabilir. Videoları izlemeyi tercih ederseniz, linke tıklayabilirsiniz (*Yazarın önerisi). Eğitim videosu

Programlama dillerinde tekrarlayan görevleri gerçekleştirmek için farklı türde döngüler kullanırız. Aşağıdaki örnekler, JavaScript ve diğer programlama dillerinde yaygın olarak kullanılan döngülerdir.

for Döngüsü

// For döngüsü yapısı
for(initialization, condition, increment/decrement){
  // code goes here
}
for(let i = 0; i <= 5; i++){
  console.log(i)
}

// 0 1 2 3 4 5
for(let i = 5; i >= 0; i--){
  console.log(i)
}

// 5 4 3 2 1 0
for(let i = 0; i <= 5; i++){
  console.log(`${i} * ${i} = ${i * i}`)
}
0 * 0 = 0
1 * 1 = 1
2 * 2 = 4
3 * 3 = 9
4 * 4 = 16
5 * 5 = 25
const countries = ['Finland', 'Sweden', 'Denmark', 'Norway', 'Iceland']
const newArr = []
for(let i = 0; i < countries.length; i++){
  newArr.push(countries[i].toUpperCase())
}

// ["FINLAND", "SWEDEN", "DENMARK", "NORWAY", "ICELAND"]

Dizideki tüm öğeleri ekleme

const numbers = [1, 2, 3, 4, 5]
let sum = 0
for(let i = 0; i < numbers.length; i++){
  sum  = sum + numbers[i]  // daha kısa yazmak istersek, sum += numbers[i]

}

console.log(sum)  // 15

Mevcut diziye dayalı yeni bir dizi oluşturma

const numbers = [1, 2, 3, 4, 5]
const newArr = []
let sum = 0
for(let i = 0; i < numbers.length; i++){
  newArr.push( numbers[i] ** 2)

}

console.log(newArr)  // [1, 4, 9, 16, 25]
const countries = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland']
const newArr = []
for(let i = 0; i < countries.length; i++){
  newArr.push(countries[i].toUpperCase())
}

console.log(newArr)  // ["FINLAND", "SWEDEN", "NORWAY", "DENMARK", "ICELAND"]

while Döngüsü

let i = 0
while (i <= 5) {
  console.log(i)
  i++
}

// 0 1 2 3 4 5

do while Döngüsü

let i = 0
do {
  console.log(i)
  i++
} while (i <= 5)

// 0 1 2 3 4 5

for of Döngüsü

Diziler için for of döngüsünü kullanırız. Dizideki her bir elemanın indeksiyle ilgilenmiyorsak eğer, bir diziyi yinelemenin en kolay yoludur.

for (const element of arr) {
  // code goes here
}

const numbers = [1, 2, 3, 4, 5]

for (const num of numbers) {
  console.log(num)
}

// 1 2 3 4 5

for (const num of numbers) {
  console.log(num * num)
}

// 1 4 9 16 25

// dizideki tüm sayıları ekleyerek
let sum = 0
for (const num of numbers) {
  sum = sum + num  
	// daha kısa yazmak istersek, sum += num
  // bundan sonraki kodlarda daha kısa syntax kullanacağız(+=, -=, *=, /= etc)
}
console.log(sum) // 15

const webTechs = [
  'HTML',
  'CSS',
  'JavaScript',
  'React',
  'Redux',
  'Node',
  'MongoDB'
]

for (const tech of webTechs) {
  console.log(tech.toUpperCase())
}

// HTML CSS JAVASCRIPT REACT NODE MONGODB

for (const tech of webTechs) {
  console.log(tech[0]) // get only the first letter of each element,  H C J R N M
}

const countries = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland']
const newArr = []
for(const country of countries){
  newArr.push(country.toUpperCase())
}

console.log(newArr)  // ["FINLAND", "SWEDEN", "NORWAY", "DENMARK", "ICELAND"]

break

Break bir döngüyü durdurmak için kullanılır.

for(let i = 0; i <= 5; i++){
  if(i == 3){
    break
  }
  console.log(i)
}

// 0 1 2

Yineleme işleminde 3 e eşit olduğunda döngüden çıkılır.

continue

Belirli bir yineleme işlemini atlamak için kullanılır.

for(let i = 0; i <= 5; i++){
  if(i == 3){
    continue
  }
  console.log(i)
}

// 0 1 2 4 5

🌕 Çok cesursun, buralara kadar geldin. Artık tekrarlayan ve sıkıcı görevleri döngü içerisinde yazma gücüne sahip oldunuz. 6. gün zorluklarını yeni tamamladınız ve mükemmelliğe giden yolda 6 adım öndesiniz. Şimdi beyniniz ve kasınız için bazı egzersizler yapın.

💻 Egzersiz:Gün 6

Egzersiz: Seviye 1

const countries = [
  'Albania',
  'Bolivia',
  'Canada',
  'Denmark',
  'Ethiopia',
  'Finland',
  'Germany',
  'Hungary',
  'Ireland',
  'Japan',
  'Kenya'
]

const webTechs = [
  'HTML',
  'CSS',
  'JavaScript',
  'React',
  'Redux',
  'Node',
  'MongoDB'
]

const mernStack = ['MongoDB', 'Express', 'React', 'Node']
  1. for döngüsünü kullanarak 0'dan 10'a kadar yineleyin, while ve do while döngüsünü kullanarak aynısını yapın

  2. for döngüsünü kullanarak 10'dan 0'a kadar yineleyin, while ve do while döngüsünü kullanarak aynısını yapın

  3. for döngüsünü kullanarak 0'dan n'ye kadar yineleyin

  4. console.log() kullanarak aşağıdaki kalıbı oluşturan bir döngü yazın:

        #
        ##
        ###
        ####
        #####
        ######
        #######
    
  5. Aşağıdaki deseni yazdırmak için döngüyü kullanın:

    0 x 0 = 0
    1 x 1 = 1
    2 x 2 = 4
    3 x 3 = 9
    4 x 4 = 16
    5 x 5 = 25
    6 x 6 = 36
    7 x 7 = 49
    8 x 8 = 64
    9 x 9 = 81
    10 x 10 = 100
    
  6. Aşağıdaki deseni yazdırmak için döngüyü kullanın:

     i    i^2   i^3
     0    0     0
     1    1     1
     2    4     8
     3    9     27
     4    16    64
     5    25    125
     6    36    216
     7    49    343
     8    64    512
     9    81    729
     10   100   1000
    
  7. 0'dan 100'e kadar yineleme yapmak ve yalnızca çift sayıları yazdırmak için for döngüsü kullanın

  8. 0'dan 100'e kadar yineleme yapmak ve yalnızca tek sayıları yazdırmak için for döngüsü kullanın

  9. 0'dan 100'e kadar yineleme yapmak ve yalnızca asal sayıları yazdırmak için for döngüsü kullanın

  10. 0'dan 100'e kadar yineleme yapmak ve tüm sayıların toplamını yazdırmak için for döngüsünü kullanın.

    The sum of all numbers from 0 to 100 is 5050.
    
  11. 0'dan 100'e kadar yineleme yapmak için for döngüsünü kullanın ve tüm çiftlerin toplamını ve tüm oranların toplamını yazdırın

    The sum of all evens from 0 to 100 is 2550. And the sum of all odds from 0 to 100 is 2500.
    
  12. 0'dan 100'e kadar yineleme yapmak için for döngüsünü kullanın ve tüm çiftlerin toplamını ve tüm oranların toplamını yazdırın. Çiftlerin toplamını ve oranların toplamını dizi olarak yazdırın.

      [2550, 2500]
    
  13. 5 rastgele sayı dizisi oluşturan küçük bir komut dosyası geliştirin

  14. 5 rastgele sayı dizisi oluşturan küçük bir komut dosyası geliştirin ve sayılar benzersiz olmalıdır.

  15. Altı karakterlik rastgele bir kimlik oluşturan küçük bir komut dosyası geliştirin

    5j2khz
    

Egzersiz: Seviye 2

  1. Herhangi bir sayıda rastgele karakter oluşturan küçük bir komut dosyası geliştirin

      fe3jo1gl124g
    
      xkqci4utda1lmbelpkm03rba
    
  2. Rastgele bir onaltılık sayı üreten bir komut dosyası yazın.

    '#ee33df'
    
  3. Rastgele bir RGB renk numarası üreten bir komut dosyası yazın.

    rgb(240,180,80)
    
  4. Seviye 1 deki ülkeler dizisini kullanarak aşağıdaki yeni diziyi oluşturun.

    ["ALBANIA", "BOLIVIA", "CANADA", "DENMARK", "ETHIOPIA", "FINLAND", "GERMANY", "HUNGARY", "IRELAND", "JAPAN", "KENYA"]
    
  5. Seviye 1 deki ülkeler dizisini kullanarak, ülkeler uzunluğu için bir dizi oluşturun'.

    [7, 7, 6, 7, 8, 7, 7, 7, 7, 5, 5]
    
  6. Aşağıdaki diziyi oluşturmak için country dizisini kullanın:

      [
      ['Albania', 'ALB', 7],
      ['Bolivia', 'BOL', 7],
      ['Canada', 'CAN', 6],
      ['Denmark', 'DEN', 7],
      ['Ethiopia', 'ETH', 8],
      ['Finland', 'FIN', 7],
      ['Germany', 'GER', 7],
      ['Hungary', 'HUN', 7],
      ['Ireland', 'IRE', 7],
      ['Iceland', 'ICE', 7],
      ['Japan', 'JAP', 5],
      ['Kenya', 'KEN', 5]
    ]
    
  7. Yukarıdaki ülkeler dizisinde, 'land' kelimesini içeren bir ülke veya ülkeler olup olmadığını kontrol edin. 'land' içeren ülkeler varsa, onu dizi olarak yazdırın. 'land' kelimesini içeren bir ülke yoksa, 'All these countries are without land' yazdırın.

    ['Finland','Ireland', 'Iceland']
    
  8. Yukarıdaki ülkeler dizisinde, 'ia' alt dizesiyle biten bir ülke veya ülkeler olup olmadığını kontrol edin. Sonu ile biten ülkeler varsa dizi olarak yazdırın. 'ai' kelimesini içeren bir ülke yoksa, 'These are countries ends without ia'' yazdırın.

    ['Albania', 'Bolivia','Ethiopia']
    
  9. Yukarıdaki ülkeler dizisini kullanarak en fazla karakter içeren ülkeyi bulun.

    Ethiopia
    
  10. Yukarıdaki ülkeler dizisini kullanarak sadece 5 karakter içeren ülkeyi bulun.

    ['Japan', 'Kenya']
    
  11. webTechs dizisindeki en uzun kelimeyi bulun

  12. Aşağıdaki diziyi oluşturmak için webTechs dizisini kullanın

    [["HTML", 4], ["CSS", 3],["JavaScript", 10],["React", 5],["Redux", 5],["Node", 4],["MongoDB", 7]]
    
  13. MongoDB, Express, React ve Node kullanılarak oluşturulan bir uygulamaya MERN yığın uygulaması denir. mernStack dizisini kullanarak MERN kısaltmasını oluşturun.

  14. Bir for döngüsü veya for of döngüsü kullanarak ["HTML", "CSS", "JS", "React", "Redux", "Node", "Express", "MongoDB"] dizisini yineleyin.

  15. Bu bir meyve dizisidir, ['banana', 'orange', 'mango', 'lemon'] ters bir yöntem kullanmadan döngü kullanarak sırayı tersine çeviriniz.

  16. Dizinin tüm öğelerini aşağıda gösterildiği gibi yazdırın.

      const fullStack = [
        ['HTML', 'CSS', 'JS', 'React'],
        ['Node', 'Express', 'MongoDB']
      ]
    
      HTML
      CSS
      JS
      REACT
      NODE
      EXPRESS
      MONGODB
    

Egzersiz: Seviye 3

  1. Ülkeler dizisini kopyala. (Mutasyondan kaçının)
  2. Diziler değişkendir. Orijinali değiştirmeden dizinin bir kopyasını oluşturun. Kopyalanan diziyi sıralayın ve sortedCountries değişkeninde saklayın.
  3. webTechs dizisini ve mernStack dizisini sıralayın.
  4. countries dizisindeki en yüksek sayıda karakteri içeren ülkeyi bulun.
  5. countries dizisinden 'land' kelimesini içeren tüm ülkeleri ayıklayın ve dizi olarak yazdırın.
  6. countries dizisinden sadece dört karakter içeren tüm ülkeleri ayıklayın ve dizi olarak yazdırın.
  7. countries dizisinden iki veya daha fazla kelime içeren tüm ülkeleri çıkartın ve dizi olarak yazdırın.
  8. countries dizisini ters çevirin, her ülkeyi büyük harf yapın ve bir dizi olarak saklayın.

🎉 TEBRİKLER ! 🎉

<< Gün 5 | Gün 7 >>