Yazılım | Programlama Java programlama

harunreyiz

Katılımcı Üye
19 Eyl 2015
361
0
if else yapısıyla ilgili bir sorunum var.
programın mantığı şu yanlış girilen cevapta hak 1 azalıyor

Kod:
int hak=1;

		if (hak != 0) {
  

}
else{
			System.out.println("Hakkınız Bitmiştir.");
		}
ama hak bittiğinde else deki işlemi yapmıyor
 
Moderatör tarafında düzenlendi:

zztri

Yaşayan Forum Efsanesi
9 Tem 2015
10,053
390
Ankara
Üstad bunlar standart algoritma işte... Şimdi ne istiyoruz, bir işlemi deneyip, her olmayışında "hak"kı 1 mi azaltacak? Nedir ritmik olarak değişen değişkenlerde kullandığımız döngü? "for" değil mi?

Kod:
boolean islemBasarili=false;
for (int hak=3;hak>0 && !islemBasarili;hak--) {
  //burada işlemi yaparsın.
  //işlem başarılı ise islemBasarili değişkenini true yaparsın.
}
if (!islemBasarili) {
  //işlem başarılı değilmiş. Eleman haklarını bitirmiş. Büyük ihtimalle bir uyarı vs. vereceğiz, başka yöne gideceğiz, vs.
}

Ne yaptık yani? Tek bir for komutuyla başlangıç hakkını, hak sıfır olunca çıkılacağını ve birer birer azalacağını belirttik. İşlemi yaptık. İşlem başarılı ise islemBasarili'yi true yaptığımız anda döngüden erken çıktık.

Canımız istedi "while" ile de yaparız da, kontrol başta değil, sonda olmalı. Neden? Hakkı kalıp kalmadığını veya başarılı olup olmadığını işlemi yapmadan kontrol etmiyoruz. Madem insan olarak sonda kontrol ediyoruz, bilgisayar da sonda kontrol edecek.

Kod:
bool islemBasarili=false;
int hak=3;
do {
  //İşlemi yaparız. İşlem başarılı ise islemBasarili true olur.
  --hak;
} while (hak>0 && !islemBasarili);

Yani ilk hatan ne? Eleman döngüden neden çıktı? İşlem mi başarılı oldu, yoksa hakkı mı bitti? Bunu hatırlamak zorundasın. İkinci olarak hakkı hiç bir yerde eksiltmemişsin. Eksiltmezsen tabii ki sonsuza dek hakkı olur.
 

harunreyiz

Katılımcı Üye
19 Eyl 2015
361
0
Üstad bunlar standart algoritma işte... Şimdi ne istiyoruz, bir işlemi deneyip, her olmayışında "hak"kı 1 mi azaltacak? Nedir ritmik olarak değişen değişkenlerde kullandığımız döngü? "for" değil mi?

Kod:
boolean islemBasarili=false;
for (int hak=3;hak>0 && !islemBasarili;hak--) {
  //burada işlemi yaparsın.
  //işlem başarılı ise islemBasarili değişkenini true yaparsın.
}
if (!islemBasarili) {
  //işlem başarılı değilmiş. Eleman haklarını bitirmiş. Büyük ihtimalle bir uyarı vs. vereceğiz, başka yöne gideceğiz, vs.
}

Ne yaptık yani? Tek bir for komutuyla başlangıç hakkını, hak sıfır olunca çıkılacağını ve birer birer azalacağını belirttik. İşlemi yaptık. İşlem başarılı ise islemBasarili'yi true yaptığımız anda döngüden erken çıktık.

Canımız istedi "while" ile de yaparız da, kontrol başta değil, sonda olmalı. Neden? Hakkı kalıp kalmadığını veya başarılı olup olmadığını işlemi yapmadan kontrol etmiyoruz. Madem insan olarak sonda kontrol ediyoruz, bilgisayar da sonda kontrol edecek.

Kod:
bool islemBasarili=false;
int hak=3;
do {
  //İşlemi yaparız. İşlem başarılı ise islemBasarili true olur.
  --hak;
} while (hak>0 && !islemBasarili);

Yani ilk hatan ne? Eleman döngüden neden çıktı? İşlem mi başarılı oldu, yoksa hakkı mı bitti? Bunu hatırlamak zorundasın. İkinci olarak hakkı hiç bir yerde eksiltmemişsin. Eksiltmezsen tabii ki sonsuza dek hakkı olur.

hocam size özelden ulaşabilirmiyim?
 

zztri

Yaşayan Forum Efsanesi
9 Tem 2015
10,053
390
Ankara
hocam size özelden ulaşabilirmiyim?

Olmaz eşim çok kıskançtır. Son zamanlarda level atladı erkeklerden de kıskanıyor. :trl

Üstad projemiz var... Kafa dinlendireceğimde girip elimden geldiğince soru cevaplıyorum. Daha fazla vakit veremem. Kusura bakma. Özel mesajlarımı okumam, ziyaretçi mesajları zaten kapalı sanırım, öyle de kalacaklar.
 

harunreyiz

Katılımcı Üye
19 Eyl 2015
361
0
Olmaz eşim çok kıskançtır. Son zamanlarda level atladı erkeklerden de kıskanıyor. :trl

Üstad projemiz var... Kafa dinlendireceğimde girip elimden geldiğince soru cevaplıyorum. Daha fazla vakit veremem. Kusura bakma. Özel mesajlarımı okumam, ziyaretçi mesajları zaten kapalı sanırım, öyle de kalacaklar.

Yine de teşekkür ederim :)
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.