Merhaba, buraya java hakkında olan sorularımı sormayı düşünüyorum.
İlk sorum şu, Scanner ile taradığım bir yer karışmasın diye nasıl ayırabilirim? Örneğin art arda 2 scanner taraması yapıyorum ve bazen iç içe giriyor hata alıyorum. Ayırmak için scan.next veya scan.nextLine kullandığımda da 3. bir input ortaya çıkıyor ve herşeyi karıştırıyor.
Sorunun tam anlayamadım. Daha detaylı anlatırsan güzel olur.
(19-10-2020, 22:04)Ayro : [ -> ]Sorunun tam anlayamadım. Daha detaylı anlatırsan güzel olur.
Bu kodu çalıştırdığımda doğru nicknameyi ve password'u yazmam gerekiyor. Böyle birşey yaptığımda ikisini aynı anda soruyor ve mismatch hatası alıyorum. Bunu scan.nextLine kullanarak çözdüm ama bu sefer 3 kez sordu. Böyle sorunlar için Inputları ayırma kodu var mı?
En son yaşadığın sorunun aynısı bu yalnız. O konuda verdiğim ilk cevabı tekrar okuyup iyice anlamanı öneririm. nextInt() sonrasında nextLine() kullanırsan sorun çözülür.
(20-10-2020, 00:02)Ayro : [ -> ]En son yaşadığın sorunun aynısı bu yalnız. O konuda verdiğim ilk cevabı tekrar okuyup iyice anlamanı öneririm. nextInt() sonrasında nextLine() kullanırsan sorun çözülür.
Teşekkürler bir daha okudum sorunu anladım. Ama yukarıda attığım fotoğraftakini çalıştırınca ve "Yasin" , "1" yazınca kabul ediyor ve while döngüsü bitiyor. Normalde "Yasin" , "123123" yazmam gerek döngünün bitmesi için. Sorun neyden kaynaklı?
Çünkü while içinde & kullanıyorsun. & operatörü operandlardan birisi false olduğunda false verir.
(20-10-2020, 01:49)Ayro : [ -> ]Çünkü while içinde & kullanıyorsun. & operatörü operandlardan birisi false olduğunda false verir.
package com.company;
import java.util.Scanner;
public class Main1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String nickname = "";
int password = 0;
String trueNickname = "";
int truePassword = 0;
System.out.println("Nickname: ");
trueNickname = scan.nextLine();
System.out.println("Password: ");
truePassword = scan.nextInt();
scan.nextLine();
while (!(nickname == trueNickname || password == truePassword)) {
System.out.println("Nickname: ");
nickname = scan.nextLine();
System.out.println("Password: ");
password = scan.nextInt();
scan.nextLine();
}
System.out.println("You may continue " + trueNickname);
}
}
Şurada nickname trueNickname'e veya password truePassword'a eşit değilse devam diyorum. nicknameyi yanlış, password'u doğru yazdığımda kabul ediyor. Bunun tersi olarak password'u yanlış yazıp nicknameyi doğru yazdığımda kabul etmiyor. Kodumda ne yanlış?
OR operatoru operandlardan en az biri true ise true sonucu verir. Cevabı çok basit aslında ama bu algoritma sorusu olduğundan kendin başına bulursan daha yararlı olur senin için.
while öncesi isim-şifre almak gereksiz olmuş bu arada.
package com.company;
import misc.ActionDemo;
import javax.swing.*;
import javax.swing.text.StyledEditorKit;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.beans.PropertyChangeListener;
import java.text.AttributedCharacterIterator;
import java.util.Map;
import java.util.Scanner;
public class Main1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
JFrame frame = new JFrame("Frame1");
JButton button = new JButton("Button" );
JToolBar toolBar = new JToolBar();
JTextArea textArea = new JTextArea();
textArea = new JTextArea(5, 30);
textArea.setEditable(true);
JScrollPane scrollPane = new JScrollPane(textArea);
button.setSize(100,50);
button.setVisible(true);
button.getAction();
toolBar.setSize(200,50);
toolBar.setVisible(true);
toolBar.add(button);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(toolBar, BorderLayout.PAGE_START);
frame.setSize(1200,700);
frame.setVisible(true);
frame.add(textArea);
}
}
Bu kod ile bir Pencere, Buton ve Chat yarattım. Bir sorum var, Scanner ile input almaya çalıştığımda bunu açtığım pencereden nasıl alırım? Hala intellij chatından almaya çalışıyor.