ghaldszar Mesaj tarihi: Ocak 19, 2022 Paylaş Mesaj tarihi: Ocak 19, 2022 (düzenlendi) Merhaba Sorularım var, kafamda bir sürü sorum var. Java hakkında. Benim içinden çıkamadığım özde temel seviye sorular. Başlıyorum. Umarım yardımcı olan meraklılar çıkar. Bir konuda hernagi bir seçeneği seçince bir şey yaptırabiliyoruz. Mesela "Oyun oynayalım mı?" sorusuna E harfine basarsan oyuna giriş yapmak H tuşuna basarsan oyundan ya da programdan dışarı çıkmak mümkün. Peki E ya da H harfi dışında bir tuşa basarsak tekrardan başa, soruya, yani "Oyun oynayalım mı?" sorusuna nasıl dönebiliriz? Aslında ikisini de çeşitli farklı statement şekilleri kullarak yapabildim ama ikisini tek bir yerde birleştiremedim. Mesela WHILE ile: public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("DO YOU WANT TO PLAY (Y / N) : "); char choice = input.next().charAt(0); while (choice != 'Y' && choice != 'y' && choice != 'N' && choice != 'n') { System.out.println("You have entered an invalid entry. Try Again."); System.out.println("DO YOU WANT TO PLAY (Y / N) : "); choice = input.next().charAt(0); } if (choice == 'Y') { System.out.print("Let's Play"); } else if (choice == 'N') { System.out.println("Byeee."); } } Burada sondaki if ve else problemli tabii ya da SWITCH ile; public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("DO YOU WANT TO PLAY (Y / N) : "); char choice = input.next().charAt(0); switch (choice) { case 'Y': case 'y': System.out.println( "Let's Go" ); break; case 'N': case 'n': System.out.println( "BYEEEEE......." ); break; default: System.out.println( "Wrong Key" ); System.out.print( "DO YOU WANT TO PLAY (Y / N) : " ); ????????? } } } ???????? olan yere ne koyacağım bilemedim. Oraya bir şey koymakla olmayacak tabii. Basic mi bu 20 GOTO 10 yazınca başa dönsün. Burada bir mantık hatası yapıyorum ama onu bir türlü bulamadım. Statement konusunda bir çok eğitim videosu izledim ama bir şeyi gözden kaçırıyorum sanırım. Ocak 19, 2022 ghaldszar tarafından düzenlendi Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
senko Mesaj tarihi: Ocak 19, 2022 Paylaş Mesaj tarihi: Ocak 19, 2022 25 dakika önce, ghaldszar dedi ki: Burada sondaki if ve else problemli tabii if elseif koymussun ama else koymamisisn if ve elseif disindaki conditionlar else e duser orda da istedigin gibi handle edebilrsin condition'i Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
senko Mesaj tarihi: Ocak 19, 2022 Paylaş Mesaj tarihi: Ocak 19, 2022 import java.util.Scanner; public class MyClass { public static void main(String args[]) { Scanner input = new Scanner(System.in); System.out.println("DO YOU WANT TO PLAY (Y / N) : "); char choice = input.next().charAt(0); while(true) { System.out.println("DO YOU WANT TO PLAY (Y / N) : "); if (choice == 'Y') { System.out.print("Let's Play"); break; } else if (choice == 'N') { System.out.println("Byeee."); break; } else { System.out.print("Enter Y or N plzzzz\n"); choice = input.next().charAt(0); } } } } gibi Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
ghaldszar Mesaj tarihi: Ocak 19, 2022 Konuyu açan Paylaş Mesaj tarihi: Ocak 19, 2022 else { choice = input.next().charAt(0); } @senko Bunu ekle diyorsun yani Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
senko Mesaj tarihi: Ocak 19, 2022 Paylaş Mesaj tarihi: Ocak 19, 2022 direk kendi koduna eklersen yalniz, hicbir zaman else e dusmez, cunku ben atiyorum 'A' girersem while loop icinde kalicam. cunku while condition'i saglanmadigindan yine while icine giricez. daha dogrusu senin kodda else e duserim ama sadece 'y' ve 'n' girersem duserim, o da istedigin durum degil. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
ghaldszar Mesaj tarihi: Ocak 19, 2022 Konuyu açan Paylaş Mesaj tarihi: Ocak 19, 2022 Eğer bu şekilde yaparsam yani sadece IF-ELSEIF-ELSE şeklinde kurarsam: public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("DO YOU WANT TO PLAY (Y / N) : "); char choice = input.next().charAt(0); if (choice == 'Y' || choice == 'y') { System.out.println( "Let's Go" ); } else if (choice == 'N' || choice == 'n') { System.out.println( "BYEEEEE......." ); } else { System.out.print("DO YOU WANT TO PLAY (Y / N) : "); choice = input.next().charAt(0); } } O zaman Y ve N durumlarda çalışıyor. Fakat farkli harf girdiğimde sadece bir kez dönüyor. Daha önce yazdğım kodun sonuna ekleme yaparsam; public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("DO YOU WANT TO PLAY (Y / N) : "); char choice = input.next().charAt(0); while (choice != 'Y' && choice != 'y' && choice != 'N' && choice != 'n') { System.out.println("You have entered an invalid entry. Try Again."); System.out.print("DO YOU WANT TO PLAY (Y / N) : "); choice = input.next().charAt(0); } if (choice == 'Y') { System.out.println("Let's Go"); } else if (choice == 'N') { System.out.println("BYEEEE......"); } else { choice = input.next().charAt(0); } } Doğru çalışıyor gözüküyor. En manıklı yazma/kurma şekli bu mu? Ya da ne ile kurmak daha doğru ne yoldan çözmeye çalışayım? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
senko Mesaj tarihi: Ocak 19, 2022 Paylaş Mesaj tarihi: Ocak 19, 2022 ilkinin else e dusmesi normal, cunku bir while dongusu icinde degil ikincisinde ise else e hic dusmuyor, (kucuk y ve kucuk n disinda) cunku eger Y girersen while dan cikiyor progrma cunku kosul saglanmis, ilk if e giriyor bakiyor Y == Y if e girip programi bitiriyor ama ufak n gir mesela, o zaman yine kosul saglanicak while icin, ama if ve else e girmeyecek cunku sadece capital harflere bakiyor, o zaman else e dusucek. Bu da istedigin durum degil. benim kod'a bak, while(true) ile devamli while icinde duruyorum, ancak sen Y ve N girersen cikiyorum. diger duumlarda hep while icindeyim. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
ghaldszar Mesaj tarihi: Ocak 19, 2022 Konuyu açan Paylaş Mesaj tarihi: Ocak 19, 2022 52 dakika önce, senko dedi ki: import java.util.Scanner; public class MyClass { public static void main(String args[]) { Scanner input = new Scanner(System.in); System.out.println("DO YOU WANT TO PLAY (Y / N) : "); char choice = input.next().charAt(0); while(true) { System.out.println("DO YOU WANT TO PLAY (Y / N) : "); if (choice == 'Y') { System.out.print("Let's Play"); break; } else if (choice == 'N') { System.out.println("Byeee."); break; } else { System.out.print("Enter Y or N plzzzz\n"); choice = input.next().charAt(0); } } } } gibi Ben senin kodu yeni gördüm, onu atlamışım. Tariflerinden anladığım kadarıyla uğraşıyorum bir taraftan diğer taraftan da en mantıklı yolu soruyorum. Kafa yoruldu mu ne? Şimdi biraz kurcaladım çalışırken bir sıkıntı oluyordu orada bir düzeltme yaptım. Son hali şöyle: public static void main(String args[]) { Scanner input = new Scanner(System.in); System.out.print("DO YOU WANT TO PLAY (Y / N) : "); char choice = input.next().charAt(0); while(true) { //System.out.print("DO YOU WANT TO PLAY (Y / N) : "); <---- BURADAKİNİ AŞAĞIYA ALDIM. if (choice == 'Y' || choice == 'y') { System.out.println("Let's Play"); break; } else if (choice == 'N' || choice == 'n') { System.out.println("Byeee."); break; } else { System.out.print("Enter Y or N plzzzz\n"); System.out.print("DO YOU WANT TO PLAY (Y / N) : "); // <---- BURAYA ALDIM choice = input.next().charAt(0); } } } Değişikliğin nedeni şu: Burada çıktısı göründüğü gibi Y ya da N verirsek tekrardan soruyu sorarak cevabı veriyordu. Yanlış bir cevap verirsek yine soruyu sorarak Enter Y or N plzzz diyordu. Neyse orası o kadar önemli değil konunun özünde kurguyu anladım. While kurgusu içerisinde IF-ELSEIF-ELSE kurgusu yapmak mantığını anladım. Fakat takıldığım bir nokta var. Bu kodda, yani benim yazdığım koddaki en son durumda: public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("DO YOU WANT TO PLAY (Y / N) : "); char choice = input.next().charAt(0); while (choice != 'Y' && choice != 'y' && choice != 'N' && choice != 'n') { System.out.println("You have entered an invalid entry. Try Again."); System.out.print("DO YOU WANT TO PLAY (Y / N) : "); choice = input.next().charAt(0); } if (choice == 'Y' || choice == 'y') { System.out.println("Let's Go"); } else if (choice == 'N' || choice == 'n') { System.out.println("BYEEEE......"); } else { choice = input.next().charAt(0); } } Bu kodu da denediğimde çalışıyor. Gayet de düzgün çalışıyor gözüküyor. Senin yazdığın kodu anladım mantığını da anladım mantıklı görünüyor. Bana kalsa senin yazdığını tercih ederim bana daha mantıklı görünüyor. Fakat Kendi yazdığım da gayet güzel çalışıyor gibi görünüyor. Nerede sıkıntı olabileceğini anlamadım ben galiba. İnsan kendi yazdığı kodu anlamaz mı? Benim gibi şans eseri yazarsa anlamayabilir tabii :)))) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
ghaldszar Mesaj tarihi: Ocak 19, 2022 Konuyu açan Paylaş Mesaj tarihi: Ocak 19, 2022 Şimdi anlatmaya çalışacağım olup olmadığını sen söylersen sevinirim @senko Senin yazdığında bir while döngüsü var true olduğu sürece bu döngünün içinde kal diyip Y ise Lets Go yaz N ise Bye yaz diğerlerinde choice girişi yap diyorsun. While döngüsünden çıkmanın yolu Y veya N harfine basmak. Benim yazdığımda önce while döngüsüne girip bakıyor eğer girilen değer Y ve N değilse bu değerlerden biri girilene kadar chice girişi yap diyor. Y veya N girilince if statement devreye giriyor. Y yazılırsa Lets go N girilirse Bye yazıyor. Fakat burada aslında ELSE IF durumu gereksiz. Zaten While içerisinde Y ve N dışındaki alternatifleri elediğimizden Y girişini lets go yazmaya yönlendirdikten sonra ister ELSE IF ile N girişini Byeee yazmaya yönlendiririz istersek direk ELSE ile -zaten geriye sadece N kalacağından- Byeee demeye yönlendirebiliriz. Mantıkta hata var mı? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
senko Mesaj tarihi: Ocak 20, 2022 Paylaş Mesaj tarihi: Ocak 20, 2022 14 saat önce, ghaldszar dedi ki: akat burada aslında ELSE IF durumu gereksiz. Zaten While içerisinde Y ve N dışındaki alternatifleri elediğimizden Y girişini lets go yazmaya yönlendirdikten sonra ister ELSE IF ile N girişini Byeee yazmaya yönlendiririz istersek direk ELSE ile -zaten geriye sadece N kalacağından- Byeee demeye yönlendirebiliriz. yok burda dogrusun. While dan cikmis olmak icin y Y n N olmasi lazim variable'in, zaten sen bu durumlari da if ve elseif de yakaliyorsun, while dan cikinca senin istemedigin bir char olma durumunu eledin zaten. oyle aman aman bir sikinti yok kulagi biraz ters tutmussun o kadar anladigim kadari ile yenisin daha, simdiden lan en iyi yolu bu mu diye cok dusunme, istedigini veriyorsa program ve execution flow'u anladiysan okey. Yavas yavas basliyacaksin zaten hangi patternlari hangi anti-patternlari kullanip kullanmaman gerektigini. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
elesso Mesaj tarihi: Ocak 24, 2022 Paylaş Mesaj tarihi: Ocak 24, 2022 Bu kodu fonksiyonlara bölsen daha rahat iş yaparsın sanırım. Bi tane askPlayGame() methodu ekleyip olumsuz koşul vb. oluştukça onu tekrar çağırsan iş biter gibi :). Bence while ile kasmak biraz yorucu burda hehe Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
ad3m Mesaj tarihi: Ocak 24, 2022 Paylaş Mesaj tarihi: Ocak 24, 2022 syntaxdan adamın methodlara gelmediği belli mantığı anlamak için böyle ilerlemesi daha güzel başarılar karşim Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
ghaldszar Mesaj tarihi: Şubat 1, 2022 Konuyu açan Paylaş Mesaj tarihi: Şubat 1, 2022 On 24.01.2022 at 16:08, elesso dedi ki: Bu kodu fonksiyonlara bölsen daha rahat iş yaparsın sanırım. Bi tane askPlayGame() methodu ekleyip olumsuz koşul vb. oluştukça onu tekrar çağırsan iş biter gibi :). Bence while ile kasmak biraz yorucu burda hehe Çok zor olmayacaksa bir örnek verir misin? On 24.01.2022 at 22:09, ad3m dedi ki: syntaxdan adamın methodlara gelmediği belli mantığı anlamak için böyle ilerlemesi daha güzel başarılar karşim Methodlara geldim aslında ama sıkıntılar çıktı geri döndüm. Başka bir eğitim videosu ile tekrar baştan başladım. Bu sorduğum soru da kendi kendime yazmaya çalıştığım, yazdıkça da içine abuk subuk şeyler eklemek için uğraştığım bu yolla kendimi denediğim bir sayı tahmin oyununun parçası. Kenidmi test ediyorum bir nevi. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
ad3m Mesaj tarihi: Şubat 1, 2022 Paylaş Mesaj tarihi: Şubat 1, 2022 En güzel öğrenme şekli o zaten. Öğrendiklerinin tümünü sıkılmayacağın basit projeler ile iliştirip kullanmak. Hem tekrar edip hafızaya alıyorsun hem de bir şeyler başarabildiğin için motivasyon oluyor. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
ghaldszar Mesaj tarihi: Kasım 9, 2022 Konuyu açan Paylaş Mesaj tarihi: Kasım 9, 2022 Çok boşlamışım burayı hemen temel seviyede bir soru sorayım: String bir değişken initialize etmem gerektiğinde ama daha değeri belli değilse hangisi daha mantıklı? String degisken = ""; String degisken = null; İkisi arasında ne fark var? Böyle bir meme var aslında bayaa bir şey anlatıyor ama :) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
aktiftablet Mesaj tarihi: Kasım 9, 2022 Paylaş Mesaj tarihi: Kasım 9, 2022 javacı değilim ama a = b yaptığında, b null ise patlatabilir mi? Primitif bi değişkeni nullemeye ne gerek var? = null yasaklansın dfsfgd Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
senko Mesaj tarihi: Kasım 9, 2022 Paylaş Mesaj tarihi: Kasım 9, 2022 (düzenlendi) String'i 2 sekilde initialize edebilirsin, null ve herhangi bir String degeri vermek (bos string "" buna dahil) Eger Class'in member variable'i ise JVM defualt null degeri verir. Ne demek istiyorum; class MyStringOperations { private String stringAsClassMemberVariable; public void printSomething() { String stringAsMethodMemberVariable; System.Out.println(stringAsClassMemberVariable); // prints null System.Out.println(stringAsMethodMemberVariable); // you'll get a compiler error, local variable'lar otomatik init edilmez. } } Bu yuzden stringAsMethodMemberVariable'i String stringAsMethodMemberVariable = null; diye belirtmen lazim. null ile empty string arasindaki fark ise, null variable'da variable'in memory pointer'i bir adress gostermez, null dir bostur yani, sadece string variable'nin pointer'i icin memory harcanir o da 64bit JVM'de 8byte. Diger taraftan bos string yer kaplar heap'te, cunku String (ve diger Tum non-primitive type'lar) Object'ten inherit olduklari icin, Object class'inin bir overhead'i vardir, ayrica String class'inin da init'te bir overhead'i vardir. Muthemelen "" yani bos string icin 40-56 byte harcanir memory'de. Kasım 9, 2022 senko tarafından düzenlendi Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
aktiftablet Mesaj tarihi: Kasım 10, 2022 Paylaş Mesaj tarihi: Kasım 10, 2022 sahibi gelmiş.. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Flassh Mesaj tarihi: Ocak 13, 2023 Paylaş Mesaj tarihi: Ocak 13, 2023 selam, bende java ögrenmeye başladım. iyi güzel online kursları falan dinliyorum ediyorum ama pratik yapma konusunda eksiğim var. nette java quiz falan diye aratınca çok hardcore sorular geliyor. yeni başlayanlar için böyle test olsun soru çözmece olsun kaynak ne var acaba. nerden nasıl öğreneyim bana balıkta verin balık tutmayı da ögretin Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
ghaldszar Mesaj tarihi: Şubat 2, 2023 Konuyu açan Paylaş Mesaj tarihi: Şubat 2, 2023 OCA - Oracle Certified Associate Java SE 8 Programmer Study Guide OCA / OCP Java SE 8 Practice Tests Bu iki kitaba bakabilirsin. Ben arada çözüyorum soruları. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar