1. sayfa
|
nextLine() metodu input bufferı /n karakterini görene kadar okur. /n karakterine gelince son olarak bu karakteri de okur ve okunan karakterleri return eder. nextInt() metodu da aynı şekilde okur fakat tek farkı /n karakterini okumaz. Bufferda bırakır. Bu yüzden nextInt() uyguladıktan sonra bufferda bir /n karakteri kalır ve nextLine() ile sıradaki satırı okumak istediğinde direk bufferdaki /n karakteri görülür ve okuma yapılmaz. Örnek: Buffer: burak/n123/n İlk nextLine(), burak/n okur. Buffer: 123/n kalır sonra nextInt(), 123 okur. Buffer: /n kalır. Bufferda karakter olduğu için program input beklemez, buffer okumaya devam eder. İkinci nextLine() sonda kalan /n karakterini okur. Son olarak 2. nextInt()'e geldiğinde buffer boş olduğu program için input bekler. Bu sorunu çözmek için, sayı okunduktan sonra bufferda kalan /n karakterini silmen gerekir. Bunun için de her nextInt() metodundan sonra nextLine() uygulayarak /n karakterini bufferdan okutup silebilirsin. System.out.println("Şifreniz"); pass = input.nextInt(); input.nextLine(); // Ekle Veya daha doğru bir çözüm yolu şöyle olur; bütün inputlarını nextLine() ile oku, daha sonra ihtiyacın olan yerlerde integer, veya double neye çevireceksen çevirebilirsin. Bu arada ikinci bir Scanner objesine (input2) ihtiyacın yok. |
Güncellenen Kod: import java.util.Scanner; Yorumun için teşekkür ederim bütün inputları nextLine() ile okuyup daha sonra çeviri yaptım ve problem düzeldi. Kod bloğu tamamen doğrumu bilmiyorum incelersen sevinirim. :) Fakat kafama takılan bir durum oldu if kontrolünde 2 adet if koyduğumda ikisinide onaylıyor. Giriş başarılı ve başarısız diye ikisinide yazıyor else kullandığım da problem olmuyor. Bunun sebebi nedir ? |
|
Burada zaten ikinci bir if'e gerek yok. Eğer şifre ve id uyuşuyorsa "giriş başarılı", değilse (else) "başarısız" olmalı. İkinci if'i yanlış yazmışsındır büyük ihtimalle. Ne yazdığını bilmediğim için bir şey diyemem. Kodda herhangi bir hata yok gibi. Tek sorun hizalama bozuk. Şöyle bir şey olmalı:
|
| Yardımın için teşekkür ederim. Java da nesne tabanlı programlama için önerebileceğin bir yer var mı ? Youtube kanalı vs gibi. Güzel bir kaynak bulamadım. |
| Maalesef bilmiyorum. Ben çoğunlukla okulda öğrendim. İngilizcen varsa araştırabilirim? İngilizce kaynak illaki vardır. |
|
https://www.javatpoint.com/java-oops-concepts https://www3.ntu.edu.sg/home/ehchua/programming/java/J3a_OOPBasics.html https://beginnersbook.com/2013/04/oops-concepts/ Buradaki teorik kavramları iyice öğrendiysen; linked list, queue, stack, binary tree gibi veri yapıları tasarlayarak ve örnek çalışma soruları bakarak nesne yönelimli tasarım becerini geliştirebilirsin. Burada birkaç örnek var veri yapılarıyla ilgili:http://introcs.cs.princeton.edu/java/40algorithms/ Burada da sırayla ders olarak verilmiş, hem video hem slayt hem kodlarıyla:http://datastructur.es/sp17/index.html Bir de şöyle bir kitap var direkt olarak javayla veri yapılarını anlatan:https://github.com/nghialunhaiha/books/blob/master/programming%20books/Java/Data%20Structures%20and%20Algorithms%20in%20Java%2C%206th%20Edition.pdf Fazla da kapsamlı araştıramadım, bulabildiklerim bunlar. Özellikle veri yapıları ile ilgili örnekler bulmanı tavsiye ediyorum çünkü hem bilinmesi gereken şeyler, hem de javada nesne yönelimli program örnekleri yapmak için idealler. Bir süre sonra araba, insan, hayvan classları falan sıkıyor ve anlamsızlaşıyor çünkü. |
1. sayfa
KOD
"login_id.input.NextLine();" Kullandığım da program çıktısı:
< Resime gitmek için tıklayın >
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.