#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
int secimMenu(x) //menüdeki ifadeleri barındıran fonksiyon.
{
int sayi, sonuc, sayi2;
int sinir = 0, sec = 0, sayiUret = 0, j, i, kontrol = 0;
switch (x)
{
case 1: //Sayının karesini alma.
printf("Karesi alinacak sayi: ");
scanf_s("%d", &sayi);
sonuc = sayi * sayi;
printf("%d sayisinin karesi: %d", sayi, sonuc);
break;
case 2: // Sayının kübünü alma.
printf("Kubu alinacak sayi: ");
scanf_s("%d", &sayi);
sonuc = sayi * sayi * sayi;
printf("%d sayisinin kubu: %d", sayi, sonuc);
break;
case 3: //Üçgen alan hesaplama.
printf("Alani hesaplanacak olan ucgenin alt tabani: ");
scanf_s("%d", &sayi);
printf("Alani hesaplanacak olan ucgenin yuksekligi: ");
scanf_s("%d", &sayi2);
sonuc = (sayi * sayi2) / 2;
printf("Ucgenin alani: %d", sonuc);
break;
case 4: // 5X5 Matris oluşturma.
int dizi[5][5];
srand(time(NULL));
printf("Yazilabilecek en buyuk sayi kac olsun: ");
scanf_s("%d", &sinir);
printf("Sayilar tekrarli olabilir mi (1-Evet | 2- Hayir): ");
scanf_s("%d", &sec);
sinir = sinir + 1;
if (sec == 1)
{
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
sayiUret = rand() % sinir;
dizi[i][j] = sayiUret;
}
}
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
printf("%d\t", dizi[i][j]);
}
printf("\n");
}
break;
}
else if (sec == 2) //ÇALIŞMAYAN KISIM.
{
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
kontrol = dizi[i][j];
while (sayiUret != kontrol)
{
sayiUret = rand() % sinir;
}
dizi[i][j] = sayiUret;
}
}
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
printf("%d\t", dizi[i][j]);
}
printf("\n");
}
break;
}
else.
{
printf("Hatali sayi yazdin, program kendini kapatiyor. Kendine iyi bak.");
break;
}
default: //hatalı sayı yazılırsa.
printf("Yazilan sayi hatalidir!\n");
main();
}
}
int main() //ana fonksiyon.
{
int x;
printf("1- Sayinin Karesini Alma\n2- Sayinin kubunu alma\n3- Ucgen alani hesaplama\n4- 5X5lik rastgele sayilardan olusan dizi yap\n");
printf("Lutfen yapmak istediginiz islemin numarasini yaziniz: ");
scanf_s("%d", &x);
secimMenu(x);
return 0;
}
Onu fark edip düzelttim hocam kodu ona göre zaten, yeni hali;Zaten 5x5 matrix olduğu için 5 yazarsan mutlaka tekrar edecek. 25ten daha büyük bir sayı yazıp çalıştırmayı dene.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
int secimMenu(x) //menüdeki ifadeleri barındıran fonksiyon
{
int sayi, sonuc, sayi2;
int sinir = 0, sec = 0, sayiUret = 0, j, i, kontrol = 0;
switch (x)
{
case 1: //Sayının karesini alma
printf("Karesi alinacak sayi: ");
scanf_s("%d", &sayi);
sonuc = sayi * sayi;
printf("%d sayisinin karesi: %d", sayi, sonuc);
break;
case 2: // Sayının kübünü alma
printf("Kubu alinacak sayi: ");
scanf_s("%d", &sayi);
sonuc = sayi * sayi * sayi;
printf("%d sayisinin kubu: %d", sayi, sonuc);
break;
case 3: //Üçgen alan hesaplama
printf("Alani hesaplanacak olan ucgenin alt tabani: ");
scanf_s("%d", &sayi);
printf("Alani hesaplanacak olan ucgenin yuksekligi: ");
scanf_s("%d", &sayi2);
sonuc = (sayi * sayi2) / 2;
printf("Ucgenin alani: %d", sonuc);
break;
case 4: // 5X5 Matris oluşturma
int dizi[5][5];
srand(time(NULL));
printf("Yazilabilecek en buyuk sayi kac olsun (En az 25 yazilmalidir!): ");
scanf_s("%d", &sinir);
if (sinir < 25)
{
printf("Lutfen en az 25 yaziniz!\n");
main();
}
printf("Sayilar tekrarli olabilir mi (1-Evet | 2- Hayir): ");
scanf_s("%d", &sec);
sinir = sinir + 1;
if (sec == 1)
{
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
sayiUret = rand() % sinir;
dizi[i][j] = sayiUret;
}
}
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
printf("%d\t", dizi[i][j]);
}
printf("\n");
}
break;
}
else if (sec == 2) //Çalışmayan kısım
{
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
kontrol = dizi[i][j];
while (1)
{
sayiUret = rand() % sinir;
if (sayiUret != kontrol)
{
break;
}
}
dizi[i][j] = sayiUret;
}
}
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
printf("%d\t", dizi[i][j]);
}
printf("\n");
}
break;
}
else
{
printf("Hatali sayi yazdin, program kendini kapatiyor. Kendine iyi bak.");
break;
}
default: //hatalı sayı yazılırsa
printf("Yazilan sayi hatalidir!\n");
main();
}
}
int main() //ana fonksiyon
{
int x;
printf("1- Sayinin Karesini Alma\n2- Sayinin kubunu alma\n3- Ucgen alani hesaplama\n4- 5X5lik rastgele sayilardan olusan dizi yap\n");
printf("Lutfen yapmak istediginiz islemin numarasini yaziniz: ");
scanf_s("%d", &x);
secimMenu(x);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
void kontrol(sayiUret, dizi, sinir, test)
{
int x, basari = 0;
float m = 0;
while (x == 1)
{
for(m = 0; m < 25; m++)
{
if (test[m] == sayiUret)
{
basari = 1;
}
}
if (basari == 1)
{
sayiUret = rand() % sinir;
x = 0;
}
else if (basari == 0)
{
x = 1;
break;
}
}
}
int secimMenu(x) //menüdeki ifadeleri barındıran fonksiyon
{
int sayi, sonuc, sayi2;
int sinir = 0, sec = 0, sayiUret = 0, j, i, test[25];
switch (x)
{
case 1: //Sayının karesini alma
printf("Karesi alinacak sayi: ");
scanf_s("%d", &sayi);
sonuc = sayi * sayi;
printf("%d sayisinin karesi: %d", sayi, sonuc);
break;
case 2: // Sayının kübünü alma
printf("Kubu alinacak sayi: ");
scanf_s("%d", &sayi);
sonuc = sayi * sayi * sayi;
printf("%d sayisinin kubu: %d", sayi, sonuc);
break;
case 3: //Üçgen alan hesaplama
printf("Alani hesaplanacak olan ucgenin alt tabani: ");
scanf_s("%d", &sayi);
printf("Alani hesaplanacak olan ucgenin yuksekligi: ");
scanf_s("%d", &sayi2);
sonuc = (sayi * sayi2) / 2;
printf("Ucgenin alani: %d", sonuc);
break;
case 4: // 5X5 Matris oluşturma
int dizi[5][5];
srand(time(NULL));
printf("Yazilabilecek en buyuk sayi kac olsun (En az 25 yazilmalidir!): ");
scanf_s("%d", &sinir);
if (sinir < 25)
{
printf("Lutfen en az 25 yaziniz!\n");
main();
}
printf("Sayilar tekrarli olabilir mi (1-Evet | 2- Hayir): ");
scanf_s("%d", &sec);
sinir = sinir + 1;
if (sec == 1)
{
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
sayiUret = rand() % sinir;
dizi[i][j] = sayiUret;
}
}
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
printf("%d\t", dizi[i][j]);
}
printf("\n");
}
break;
}
else if (sec == 2) //Çalışmayan kısım
{
for (i = 0; i < 25; i++)
{
sayiUret = rand() % sinir;
kontrol(sayiUret, dizi, sinir);
test[i] = sayiUret;
}
for (int f = 0; f < 5; f++)
{
for (int g = 0; g < 5; g++)
{
test[f] = dizi[g][0]
}
}
for (f = 5; f < 10; f++)
{
for (g = 5; g < 10; g++)
{
test[f] = dizi[g][1]
}
}
for (f = 10; f < 15; f++)
{
for (g = 10; g < 15; g++)
{
test[f] = dizi[g][2]
}
}
for (f = 15; f < 20; f++)
{
for (g = 15; g < 20; g++)
{
test[f] = dizi[g][3]
}
}
for (f = 20; f < 25; f++)
{
for (g = 20; g < 25; g++)
{
test[f] = dizi[g][4]
}
}
/*for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
printf("%d\t", dizi[i][j]);
}
printf("\n");
}*/
break;
}
else
{
printf("Hatali sayi yazdin, program kendini kapatiyor. Kendine iyi bak.");
break;
}
default: //hatalı sayı yazılırsa
printf("Yazilan sayi hatalidir!\n");
main();
}
}
int main() //ana fonksiyon
{
int x;
printf("1- Sayinin Karesini Alma\n2- Sayinin kubunu alma\n3- Ucgen alani hesaplama\n4- 5X5lik rastgele sayilardan olusan dizi yap\n");
printf("Lutfen yapmak istediginiz islemin numarasini yaziniz: ");
scanf_s("%d", &x);
secimMenu(x);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
void secimMenu(int x) //menüdeki ifadeleri barındıran fonksiyon
{
int sayi, sonuc, sayi2;//gerekli olacak atamalarımızı gerçekleştirelim
int sinir = 0, sec = 0, sayiUret = 0, j, i, kontrol = 0; //gerekli olacak atamalarımızı gerçekleştirelim
int dizi[5][5];
switch (x)//switch case yapısı ile kullanıcının seçtiği işleme gidelim
{
case 1: //Sayının karesini alma
printf("Karesi alinacak sayi: ");
scanf_s("%d", &sayi);
sonuc = sayi * sayi; //karesini alma işlemi
printf("%d sayisinin karesi: %d", sayi, sonuc);
scanf_s("%d"); // .exe olarak attığım kişilerde sonucu göstermeden kapanmaması için bunu ekliyorum. Kodu çalıştırdığınız programlarda buna gerek yok.
break;
case 2: // Sayının kübünü alma
printf("Kubu alinacak sayi: ");
scanf_s("%d", &sayi);
sonuc = sayi * sayi * sayi; //kübünü alma işlemi
printf("%d sayisinin kubu: %d", sayi, sonuc);
scanf_s("%d");// .exe olarak attığım kişilerde sonucu göstermeden kapanmaması için bunu ekliyorum. Kodu çalıştırdığınız programlarda buna gerek yok.
break;
case 3: //Üçgen alan hesaplama
printf("Alani hesaplanacak olan ucgenin alt tabani: ");
scanf_s("%d", &sayi);
printf("Alani hesaplanacak olan ucgenin yuksekligi: ");
scanf_s("%d", &sayi2);
sonuc = (sayi * sayi2) / 2; //üçgen alanı hesaplama, burada eğer küsüratlı değerler de çıksın isterseniz sayi, sayi2 ve sonuc değişkenlerini float olarak atayın en başta.
printf("Ucgenin alani: %d", sonuc);
scanf_s("%d");// .exe olarak attığım kişilerde sonucu göstermeden kapanmaması için bunu ekliyorum. Kodu çalıştırdığınız programlarda buna gerek yok.
break;
case 4: // 5X5 Matris oluşturma
srand(time(NULL)); //sürekli aynı sayının oluşmaması için
printf("Yazilabilecek en buyuk sayi kac olsun (En az 25 yazilmalidir!): ");
scanf_s("%d", &sinir); //üretilecek en büyük sayıyı belirliyoruz.
if (sinir < 25) //25´ten küçük bir sayı yazılırsa programın düzgün çalışmama ihtimalini ortadan kaldırıyoruz.
{
printf("Lutfen en az 25 yaziniz!\n");
scanf_s("%d");// .exe olarak attığım kişilerde sonucu göstermeden kapanmaması için bunu ekliyorum. Kodu çalıştırdığınız programlarda buna gerek yok.
return;
}
printf("Sayilar tekrarli olabilir mi (1-Evet | 2- Hayir): "); //dizide sayılar tekrar etsin mi etmesin mi?
scanf_s("%d", &sec); //cevabı değişkene atıyoruz.
sinir = sinir + 1; // burada sinir değişkeni eğer 25 olursa 0-24 arası sayı üreteceği için +1 ekleyerek 1-25 arası sayıların üretilmesini sağlıyoruz.
//Yani amacımız kullanıcının yazdığı sayının en büyük sayı olabilmesi.
if (sec == 1) //Eğer tekrarlı sayılar olabilir derse kullanıcı
{
for (i = 0; i < 5; i++) //sütunlar için
{
for (j = 0; j < 5; j++) //satırlar için
{
sayiUret = rand() % sinir; //rastgele sayı üretme.
dizi[i][j] = sayiUret; //üretilen sayıyı dizimize aktarıyoruz.
}
}
for (i = 0; i < 5; i++) //bastıracağımız dizinin sütunları için
{
for (j = 0; j < 5; j++) //basılacak dizinin satırları için.
{
printf("%d\t", dizi[i][j]); //diziyi bastırma
}
printf("\n"); //satır tamamlandığında 5x5 görünümü için bir alt satıra geçmeliyiz.
}
scanf_s("%d"); // .exe olarak attığım kişilerde sonucu göstermeden kapanmaması için bunu ekliyorum. Kodu çalıştırdığınız programlarda buna gerek yok.
break;
}
else if (sec == 2) //Eğer tekrarsız olunması isteniyorsa sayıların.
{
//Dizinin içini sıfırlayalım
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
dizi[i][j] = 0;
}
}
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
/**************/
sayiUret = rand() % sinir; // Önce sayıyı üretelim.
int KontrolDurum = 0; // Kontrol için durumumuzu 0 yapalım. 0 : tekrarlı değer yok. 1 üretilen değer tekrarlı.
// şimdi ise dizinin için bir döngü kontrol edelim ki ürettiğimiz değer var mı bakalım.
for (int a = 0; a < 5; a++) {
for (int b = 0; b < 5; b++) {
if ((dizi[a][b]) == sayiUret) {
KontrolDurum = 1; // Dizi içinde aynı değer var
break; // Döngüden çıkalım daha fazla taramaya gerek yok.
}
}
}
if (KontrolDurum == 1)
{
j--;
} // Dizi içinde aynı değer olduğu için döngüyü 1 adım geri alalım ki yeniden sayı üretilsin.
else {
dizi[i][j] = sayiUret;
}
/**************/
}
}
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
printf("%d\t", dizi[i][j]);
}
printf("\n");
}
scanf_s("%d");// .exe olarak attığım kişilerde sonucu göstermeden kapanmaması için bunu ekliyorum. Kodu çalıştırdığınız programlarda buna gerek yok.
break;
}
else
{
printf("Hatali sayi yazdin, program kendini kapatiyor. Kendine iyi bak.");
scanf_s("%d");// .exe olarak attığım kişilerde sonucu göstermeden kapanmaması için bunu ekliyorum. Kodu çalıştırdığınız programlarda buna gerek yok.
break;
}
case 5: //Şans oyunu
srand(time(NULL));
int k_secim, tahmin, sayi;
printf("Lutfen zorluk derecesini seciniz\n1-Cok Kolay\n2-Kolay\n3- Orta\n4- Zor\n5- Cok Zor\nSeciminiz:");
scanf_s("%d", &k_secim);
if (k_secim == 1)
{
sayi = 1 + rand() % 5;
printf("Uretilen sayinin olabilecegi en buyuk deger 5, en kucuk deger ise 1´dir.\nLutfen tahmininizi yaziniz: ");
scanf_s("%d", &tahmin);
if (tahmin == sayi)
{
printf("Tebrikler, bildin!");
scanf_s("%d");// .exe olarak attığım kişilerde sonucu göstermeden kapanmaması için bunu ekliyorum. Kodu çalıştırdığınız programlarda buna gerek yok.
return;
}
else
{
printf("Sansin hic mi yok ya...");
scanf_s("%d");// .exe olarak attığım kişilerde sonucu göstermeden kapanmaması için bunu ekliyorum. Kodu çalıştırdığınız programlarda buna gerek yok.
return;
}
}
else if (k_secim == 2)
{
sayi = 1 + rand() % 20;
printf("Uretilen sayinin olabilecegi en buyuk deger 20, en kucuk deger ise 1´dir.\nLutfen tahmininizi yaziniz: ");
scanf_s("%d", &tahmin);
if (tahmin == sayi)
{
printf("Tebrikler, sansli seni!");
scanf_s("%d");// .exe olarak attığım kişilerde sonucu göstermeden kapanmaması için bunu ekliyorum. Kodu çalıştırdığınız programlarda buna gerek yok.
return;
}
else
{
printf("Sans oyunlarina ara versen iyi olur...");
scanf_s("%d");// .exe olarak attığım kişilerde sonucu göstermeden kapanmaması için bunu ekliyorum. Kodu çalıştırdığınız programlarda buna gerek yok.
return;
}
}
else if (k_secim == 3)
{
sayi = 1 + rand() % 40;
printf("Uretilen sayinin olabilecegi en buyuk deger 40, en kucuk deger ise 1´dir.\nLutfen tahmininizi yaziniz: ");
scanf_s("%d", &tahmin);
if (tahmin == sayi)
{
printf("Tebrikler, sanslisin! Evet, bildin.");
scanf_s("%d");// .exe olarak attığım kişilerde sonucu göstermeden kapanmaması için bunu ekliyorum. Kodu çalıştırdığınız programlarda buna gerek yok.
return;
}
else
{
printf("Uzulme be, kazanma sansin dusuktu, konu sen olunca çok çok daha dusuk tabii...");
scanf_s("%d");// .exe olarak attığım kişilerde sonucu göstermeden kapanmaması için bunu ekliyorum. Kodu çalıştırdığınız programlarda buna gerek yok.
return;
}
}
else if (k_secim == 4)
{
sayi = 1 + rand() % 100;
printf("Uretilen sayinin olabilecegi en buyuk deger 100, en kucuk deger ise 1´dir.\nLutfen tahmininizi yaziniz: ");
scanf_s("%d", &tahmin);
if (tahmin == sayi)
{
printf("Tebrikler, seni UnlostJr! Unutma bu sadece sansti!");
scanf_s("%d");// .exe olarak attığım kişilerde sonucu göstermeden kapanmaması için bunu ekliyorum. Kodu çalıştırdığınız programlarda buna gerek yok.
return;
}
else
{
printf("Uzulme be, kazanma sansin cooook dusuktu. Bir de tahmini sen yapinca...");
scanf_s("%d");// .exe olarak attığım kişilerde sonucu göstermeden kapanmaması için bunu ekliyorum. Kodu çalıştırdığınız programlarda buna gerek yok.
return;
}
}
else if (k_secim == 5)
{
sayi = 1 + rand() % 250;
printf("Uretilen sayinin olabilecegi en buyuk deger 250, en kucuk deger ise 1´dir.\nLutfen tahmininizi yaziniz: ");
scanf_s("%d", &tahmin);
if (tahmin == sayi)
{
printf("Tebrikler, Unlost musun be! Sansin bu seferlik seninleydi.");
scanf_s("%d");// .exe olarak attığım kişilerde sonucu göstermeden kapanmaması için bunu ekliyorum. Kodu çalıştırdığınız programlarda buna gerek yok.
return;
}
else
{
printf("Cook zorladin be, o kadar sansli birisi degilsin zaten...");
scanf_s("%d");// .exe olarak attığım kişilerde sonucu göstermeden kapanmaması için bunu ekliyorum. Kodu çalıştırdığınız programlarda buna gerek yok.
return;
}
}
default: //hatalı sayı yazılırsa
printf("Yazilan sayi hatalidir!\n");
scanf_s("%d");// .exe olarak attığım kişilerde sonucu göstermeden kapanmaması için bunu ekliyorum. Kodu çalıştırdığınız programlarda buna gerek yok.
return;
}
}
void main() //ana fonksiyon yani ilk burası çalışacak.
{
int x;
printf("1- Sayinin Karesini Alma\n2- Sayinin kubunu alma\n3- Ucgen alani hesaplama\n4- 5X5lik rastgele sayilardan olusan dizi yap\n5- Sans oyunu\n"); //İşlemlerin listesi
printf("Lutfen yapmak istediginiz islemin numarasini yaziniz: ");//kullanıcıdan işlemi alma
scanf_s("%d", &x);//alınan işlem numarasını programın anlaması için bir değere atama
secimMenu(x);// x değerini işlemlerin bulunduğu secimMenu adlı fonksiyona yollayarak işlemlerimize devam edelim.
return;
}
Nasıl yani? Eğer 4-10-1 yaparsanız kod sorunsuz çalışıyor?Sorunu henüz tam anlamıyla çözemedim ama bahsettiğin yerde 32. satırdaki case: 'den sonra; koyman lazım. Yoksa array'i deklare etmiyor.
Muhtemelen yani IDE'lerden birisini kullanıyorsun. Seninkinde sorun olmuyor olabilir. CodeBlocks gibi eski IDE'lerde goto: switch: gibi kodlardan sonra ayrıyeten ; koymazsan çoğu kod çalışmaz.Nasıl yani? Eğer 4-10-1 yaparsanız kod sorunsuz çalışıyor?
while(1){
sayiUret = rand() % sinir;
if(sayiUret != kontrol){
break;
}
}
scanf_s();
scanf();
Evet, bunu tek karakterli seçimlerde kullanmak daha iyi olacaktır. Örneğin "(e/h)" gibi sorular sorduğunuz zaman kullanıcıya.Ayrıca switch: break: kullanmanızı çok tavsiye etmem. Yerine if-else konulabilir.
Öncelikle teşekkürler, atmış olduğunuz kodu yazdığımda yine tekrarlı sayı elde etti program. Sebebi nedir?While'da hatanız var.
While döngünüz böyle olmalı. Böyle olmadığı için de "sayiUret" değişkeni sınır dediğiniz dizi elemanına eşit olmuş oluyor (tanımlanmamış oluyor) ve bundan dolayı da sonsuz döngüye giriyor. Önce değişkenin atamasını yapıp, sonra kontrol etmeniz gerekli.C:while(1){ sayiUret = rand() % sinir; if(sayiUret != kontrol){ break; } }
Ayrıca;
yerineC:scanf_s();kullanmanız daha iyi olacaktır.C:scanf();
Switch case yapısının buradaki dezavantajı nedir peki?Ayrıca switch: break: kullanmanızı çok tavsiye etmem. Yerine if-else konulabilir.
Hocam maalesef Visual Studio Community scanf_s yazılmazsa hata veriyor ve bunu kafasına göre yapıyor. Kimi zaman scanf çalışıyor kimi zamansa scanf_s istiyor.Ayrıca;
yerineC:scanf_s();kullanmanız daha iyi olacaktır.C:scanf();
Genel olarak uzun projelerde okunaklılığı azaltıyor. Bu yüzden tavsiye etmem. Zaten goto-switch bunları pek kullanan kalmadı artık, çoğu yeni dilde yer almıyorlar bile.Switch case yapısının buradaki dezavantajı nedir peki?
C dilini bize daha çok algoritmayı anlamamız için öğretiyorlar şuan ve ödevlerde switch case yapısı zorunlu olarak kullanılması istenebiliyor ondan ötürü switch case yapısını kullandım.Genel olarak uzun projelerde okunaklılığı azaltıyor. Bu yüzden tavsiye etmem. Zaten goto-switch bunları pek kullanan kalmadı artık, çoğu yeni dilde yer almıyorlar bile.