April 25, 2013

Denedim ve hala break olmasa da alt satıra geçiyor. Alıştığımız gibi eşleşen satırdan sonrakine geçmemesi için break kullanmak gerekiyor. Ayrıca ilginç bir şey denedim:

 switch(seçenekler) {
   case 0: "0".write(", ");
   case 1: "1".write(", ");
   default:
   case 2: "2".write(", ");
   case 3: "3".write(", ");
   goto default;
 }

default'u alıştığımızın aksine sona değil herhangi bir yere koydum. En sona goto kullandığımızda da doğal olarak sonsuz döngüye girdi. Sanırım default tamamen bir etiket gibi davranıyor. Bu durumda switch() tarafından işlevsel olarak kullanılmayan başka etiketler de olabilir gibi. Basit, alışılmış ama hoş...

Peki farklı olan ne; onu anlamadım...:)

Bu da gereksiz sonsuz döngüye örnek olabilir:

 switch(seçenekler) {
   case 0: "0".write(", ");
   case 1: "1".write(", ");
   case 2: "2".write(", ");
   case 3: "3".write(", ");
   default: goto case 0;
 }/* Çıktısı:
0, 1, 2, 3, 0, 1, 2, 3, 0 .... 3, ....

Sanırım farklı olan 'case 0'ın arasındaki boşluğa rağmen bir etiket ismi gibi davranabilmesi. İşte bu hoş ama biraz garip...

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 25, 2013

Aaa evet, bu geçiş dönemi olsa gerek. Alıştır ve sonra zorunlu kıl...

Tuttum bunu:
Alıntı:

>

'[atelyeweb@sdb tmp]$ dmd as.d -w
as.d(25): Error: switch case fallthrough - use 'goto case;' if intended
as.d(26): Error: switch case fallthrough - use 'goto case;' if intended
as.d(27): Error: switch case fallthrough - use 'goto case;' if intended
as.d(28): Error: switch case fallthrough - use 'goto default;' if intended
'

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 25, 2013

Alıntı (Salih Dinçer):

>

Denedim ve hala break olmasa da alt satıra geçiyor.

Benim Makefile -w -unittest vs. gibi seçenekleri otomatik olarak eklediği için oluyormuş. Belki de şimdilik, bunu bir uyarı olarak bırakmışlar. -w seçeneği verilirse hata oluyor (-wi verilirse uyarıyor ama derleme devam ediyor).

Duff's device denen yöntem de case'lerin aslında etiket olmalarından yararlanır:

http://en.wikipedia.org/wiki/Duff%27s_device

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

1 2
Next ›   Last »