Üni. hocasından acayip bir soru. PHP bilenler yardım lütfen
27
●1.992
- 15-03-2018, 19:20:53
<?php $SuankiKat=5; $GidilecekKat=7; echo 'Asansor '.$SuankiKat.' kattan harekete başladı...<br>'; while($SuankiKat > $GidilecekKat) { $SuankiKat--; echo $SuankiKat.'ncı kata geçildi.<br>'; } while($SuankiKat < $GidilecekKat) { $SuankiKat++; echo $SuankiKat.'ncı kata geçildi.<br>'; } echo 'Asansor '.$SuankiKat.' katta durdu...<br>'; ?> - 16-03-2018, 03:38:31For diyen arkadaşlar mantığa uyduramadım bir türlü

Adam kat listesi istemiyor tetiklenen bir rakam var(basılan düğme) o rakam ne mantık bu.
For ile listelersin belki dışardan düğme değişkenini alır içerde tekrar if ile kontrol edersin ama bana hamallık gibi geliyor.
Switch-case ile direk düğme değişkeni neyse ona gidersin yani bütün katları döngüye sokarak if kullanmak mantıklı gelmiyor.
Sınav sonrası sonucu burda belirtirseniz sevinirim.
PHP de kataGit diye bir fonksiyon varda biz mi bilmiyoruz hocam ?hesapadim adlı üyeden alıntı: mesajı görüntüle - 16-03-2018, 17:01:49Evet ama verilen örnek bir asansör örneği. Bir asansör pat diye istenilen kata gitmiyor. Katları sırasıyla geçiyor istenilen katta duruyor. Switch-Case yapısı kullanılırsa direkt o kata gidilmiş olunur ara katlar gezilmiş olmaz. Hoca bir önceki örnekte ip ucunu vermiş zaten. if kullanın yani kat gidilmek istenilen kat mı diye kontrol edin olmadı yine if le sonrakini kontrol edin demiş. Sonrada bu 2 katlı bir yapı için kolayda 40 kat için çok if yazmak gerekir demiş. Bunun yerine kolayı var onu bulun demiş.
Katları gezebilmek için en çok bilinen iki seçenek var. for ve while
Asansör herhangi bir yerde olabilir ayrıca herhangi bir kata gidilmek istenebilir. Bu durumda asansörün hareket yönü aşağıda olabilir yukarıda. For kullanırsak başlangıç ve bitiş değerleri arasındaki farkı hesaplayıp aşağı veya yukarı döngüsü kurup istenilen katta break ile durmak lazım.
While ile bu iş çok basit ve kısa. Yukarıda kodları verdim zaten.
Amaçta sonuca en kısa yoldan ulaşmak olduğuna göre kesinlikle While yolu izlenmeli.
CoLLeR adlı üyeden alıntı: mesajı görüntüle - 16-03-2018, 17:08:28switch kullanılırsa asansör mantığı olmamış olur direk o kata ışınlanmış olacak ki bu asansörün mantığına ters bunu for veya while kullanarak yaparsın ve break komutu ilede o katta durmuş olursun aslında basit bir soru biz ünide ne sorular görmüştük hey gidi 1 soruya tam 45 dk yazmıştım 3 sayfa kod bide pcde yapmıyordular bizim sınavları hep kağıtta
- 16-03-2018, 18:27:51Açıklama güzel oldu teşekkürler.skassas adlı üyeden alıntı: mesajı görüntüle
Asansör mantığını düşünmeden direk hedefe yöneldim ben.
Aslında böyle soru ve cevapların yarıştığı bir kategori olsa güzel olur diye düşünüyorum.
