Arama butonu
Bu konudaki kullanıcılar: 1 misafir
10
Cevap
606
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.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Ü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.

Üye Ol Şimdi Değil



V
13 yıl
Yüzbaşı

== yerine equals gibi bir method olmalıydı


Bu mesaja 1 cevap geldi.
Y
13 yıl
Onbaşı
Konu Sahibi

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.


Bu mesaja 1 cevap geldi.
D
13 yıl
Binbaşı

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.





< Bu mesaj bu kişi tarafından değiştirildi deadmanku -- 4 Ekim 2012; 18:19:56 >
Bu mesaja 1 cevap geldi.
W
13 yıl
Binbaşı

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.


Bu mesaja 1 cevap geldi.
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.
R
13 yıl
Yüzbaşı

389n vonm, vmndskfjbaetg ,m aetkj gakej gnknae





< Bu mesaj bu kişi tarafından değiştirildi rob dö şambır -- 30 Nisan 2013; 14:13:15 >
Bu mesaja 3 cevap geldi.
W
13 yıl
Binbaşı

quote:

Orijinalden alıntı: rob dö şambır

muhtemelen cevabımı anlayacak kalibrede kimse yok burada, ama yine de yazayım dedim (canım sıkılıyo biliyon mu):
C#'ta operator overloading var, bu nedenle == operatörü string türü için değer(value) kıyaslaması yapar. Java'da operator overloading yok, bu nedenle value kıyaslaması yapmak için mutlaka method çağıracaksın yoksa referans kıyaslaması yapar.
Peki + operatörü neden Java'da toplama yapmıyor(veya hata vermiyor) da iki string'i birleştiriyor? çünkü Java'yı dizayn edenler sadece string için + operatörünü overload edivermişler. öyle sıratan bir özellik işte Java'da...

Zeka seviyesi ile bilgi seviyesini karıştırıp insanlara laf sokmaya çalışma yeteneği de size özgü olsa gerek.





< Bu mesaj bu kişi tarafından değiştirildi welrocken -- 4 Ekim 2012; 23:47:53 >

< Bu ileti mobil sürüm kullanılarak atıldı >
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.



C
13 yıl
Teğmen

quote:

Orijinalden alıntı: rob dö şambır

muhtemelen cevabımı anlayacak kalibrede kimse yok burada, ama yine de yazayım dedim (canım sıkılıyo biliyon mu):
C#'ta operator overloading var, bu nedenle == operatörü string türü için değer(value) kıyaslaması yapar. Java'da operator overloading yok, bu nedenle value kıyaslaması yapmak için mutlaka method çağıracaksın yoksa referans kıyaslaması yapar.
Peki + operatörü neden Java'da toplama yapmıyor(veya hata vermiyor) da iki string'i birleştiriyor? çünkü Java'yı dizayn edenler sadece string için + operatörünü overload edivermişler. öyle sıratan bir özellik işte Java'da...

sorunlu olduğun için canın sıkılıyor olabilir.



V
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: welrocken

quote:

Orijinalden alıntı: rob dö şambır

muhtemelen cevabımı anlayacak kalibrede kimse yok burada, ama yine de yazayım dedim (canım sıkılıyo biliyon mu):
C#'ta operator overloading var, bu nedenle == operatörü string türü için değer(value) kıyaslaması yapar. Java'da operator overloading yok, bu nedenle value kıyaslaması yapmak için mutlaka method çağıracaksın yoksa referans kıyaslaması yapar.
Peki + operatörü neden Java'da toplama yapmıyor(veya hata vermiyor) da iki string'i birleştiriyor? çünkü Java'yı dizayn edenler sadece string için + operatörünü overload edivermişler. öyle sıratan bir özellik işte Java'da...

Zeka seviyesi ile bilgi seviyesini karıştırıp insanlara laf sokmaya çalışma yeteneği de size özgü olsa gerek.

bu arkadaşı takmayın çok bildim havalarında taklıyor



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.