Çözüldü Java kodu yanlış sonuç veriyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

cybermaffia

Centipat
Katılım
6 Ekim 2021
Mesajlar
319
Yer
Fırsatlar Ülkesi AMERIKA
Daha fazla  
Cinsiyet
Erkek
Meslek
Computer Engineer
Kod:
import java.util.Scanner;



public class class16 {

  

    public static int random() {

      

        int sayi = (int)(Math.random()*100);

        return sayi;

    }

  

        public static void main (String [] args) {

            Scanner scan = new Scanner(System.in);

    

            System.out.println(random());

          

            System.out.println("1 - 100 Arası sayıyı tahmin ediniz : ");

            int sayı = scan.nextInt();

          

          

          

            if(sayı == random()) {

                System.out.println("Tebrikler tahmininiz doğru ...");

            }

          

            else if (sayı>random()) {

                System.out.println("Tahmininiz sayıdan büyük ");

            }

          

            else if (sayı < random()) {

                System.out.println("Tahmininiz sayıdan küçük ");

            }



    }

  

}

Kodumda herhangi bir hata var mı? Çünkü sayı girdiğimde yanlış sonuçlar veriyor.
 
Son düzenleyen: Moderatör:
Çözüm
Ekrana yazdırdığınız sayıyla if içindeki sayı aynı değil. Fonksiyonu iki kere çağırmışsınız. Yapmanız gereken bir kere çağırıp return'lenen sayı üzerinden işlem yapmak.
Kod:
import java.util.Scanner;



public class class16 {

 

    public static int random() {

    

        int sayi = (int)(Math.random()*100);

        return sayi;

    }


        public static void main (String [] args) {

            Scanner scan = new Scanner(System.in);

  

            System.out.println(random());

        

            System.out.println("1 - 100 Arası sayıyı tahmin ediniz : ");

            int sayı = scan.nextInt();

        

        

        

            if(sayı == random()) {

                System.out.println("Tebrikler tahmininiz doğru ...");

            }

        

            else if (sayı>random()) {

                System.out.println("Tahmininiz sayıdan büyük ");

            }

        

            else if (sayı < random()) {

                System.out.println("Tahmininiz sayıdan küçük ");

            }



    }

 

}

Kodumda herhangi bir hata var mı? Çünkü sayı girdiğimde yanlış sonuçlar veriyor.
Cunku o random() her seferinde rastgele bir sayi uretiyor, dolayisiyla da siz dogru girseniz de yeni bir rastgele sayiya gore kontrol ediyor. Random fonksiyonunu bir kere cagirip degiskene atayin ve if'te o deger icin sorgu yapin.
29
1 - 100 Arası sayıyı tahmin ediniz :
29
Tebrikler tahmininiz doğru ...

Gordugunuz gibi oyle yapinca oldu.

Java:
import java.util.Scanner;

public class class16 {
    public static int random() {
        int sayi = (int)(Math.random()*100);        
        return sayi;
    }

        public static void main (String [] args) {
            Scanner scan = new Scanner(System.in);
            int sayi = random();
            System.out.println(sayi);
            System.out.println("1 - 100 Arası sayıyı tahmin ediniz : ");
            int sayı = scan.nextInt();

            if(sayı == sayi) {
                System.out.println("Tebrikler tahmininiz doğru ...");
            }

            else if (sayı>sayi) {
                System.out.println("Tahmininiz sayıdan büyük ");
            }

            else if (sayi < random()) {
                System.out.println("Tahmininiz sayıdan küçük ");
            }
    }
}
 
Son düzenleme:
Ekrana yazdırdığınız sayıyla if içindeki sayı aynı değil. Fonksiyonu iki kere çağırmışsınız. Yapmanız gereken bir kere çağırıp return'lenen sayı üzerinden işlem yapmak.
 
Çözüm
Ekrana yazdırdığınız sayıyla if içindeki sayı aynı değil. Fonksiyonu iki kere çağırmışsınız. Yapmanız gereken bir kere çağırıp return'lenen sayı üzerinden işlem yapmak.

Hocam, kod doğru çalıştı. Mantığını şimdi anladım. Teşekkür ederim :)
Ekrana yazdırdığınız sayıyla if içindeki sayı aynı değil. Fonksiyonu iki kere çağırmışsınız. Yapmanız gereken bir kere çağırıp return'lenen sayı üzerinden işlem yapmak.
Hocam böyle kod sorularını sorabileceğim bu foruma benzer bildiğiniz siteler var mı ?
 

Geri
Yukarı