Arama butonu
Bu konudaki kullanıcılar: 1 misafir
10
Cevap
607
Tıklama
0
Öne Çıkarma
java scanner ve if yapısı
Y
13 yıl
Onbaşı
Konu Sahibi

import java.util.Scanner; 
public class deneme{
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
String x = sc.next();
if(x=="enter")
System.out.print("True");
}
}

arkadaşlar kod bu. enter yazıp tıkladığım zaman true yazdırmıyor. acaba sebebi nedir yardımcı olursanız çok makbule geçer.



D
13 yıl
Binbaşı

quote:

Orijinalden alıntı: welrocken

quote:

Orijinalden alıntı: deadmanku

quote:

Orijinalden alıntı: yss126

quote:

Orijinalden alıntı: bytecode3

== yerine equals gibi bir method olmalıydı

evet ingilizce aratınca bişeyler buldum
import java.util.Scanner; 
public class deneme{
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
String x = sc.next();
[b]if(x.equals("enter"))[/b]
System.out.print("True");
}
}

olarak kullanınca sorun çözüldü ama neden böyle olması gerektiğini anlamadım. Neyse sonuçta sorun çözüldü. Sağolasın yine de.

string ifadeleri eşitlerken equals komutunu kullanıyoruz.ilk başlayan herkes bu durumu yaşamıştır.iyi çalışmalar.

Sanırım Java değişkenlerde bir index sistemi kullanıyor iki tane "asd" değerli değişkeni == operatörü eşit değil gibi görüyor. İlginç birşey doğrusu ben de karıştırmıştım başta.

equals referans aldığı değişkeni ele alırken.== tamamen aynı değişkenin ele alır.
Kaynak


Bu mesaja 1 cevap geldi.
B
13 yıl
Yüzbaşı

bu ne javada olmayan operatör overloading ile ne de referans kıyaslaması ile alakalı değildir. ( string birleştirme için geçerli değil bu söylediğim )

c# da bildiğim kadarı ile primitif tip değişkenler yok, herşey nesne ( yanılıyor olabilirim, gerçekten C# bilen birileri yanılıyorsam düzeltsin lütfen ) bu yüzden bütün nesneler yanı şekilde karşılaştırılır ( "==" operatörü "equals" ı override etmiştir )

javada ise primitif tipler vardır int, long, double gibi. bu tipler java.lang.Object temel nesnesinden türemediği için doğal olarak içlerinde equals metodu barındırmazlar ve karşılaştırmak için "==" operatörü kullanılır. String ise bütün objeler gibi java.lang.Object ten türemiştir, bu yüzden karşılaştırmak için equals metodu kullanmak gerekir. Kısmen haklı olduğunuz gibi eğer java da operatör overloading vm seviyesinde değil de kodlama seviyesinde de mümkün olsaydı string equals metodunu "==" operatörü ile overload edebilir ve bu şekilde de karşılaştırabilirdik. ( C# da olduğu gibi )

Bu konu hakkında şu linktehttp://forum.donanimhaber.com/m_64501153/mpage_1/f_/key_//tm.htm#msglink_64611341 birşeyler yamıştım, oraya da bakabilirsiniz.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.