Java'da veri girişi için iki kere enter a basmak

Beratini

Picopat
Katılım
12 Kasım 2020
Mesajlar
73
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Java'da bir ödev yapıyorum ve derlediğimde bir veri girişi yapıp enter a bastığımda hiçbir şey olmuyor. Bir kez daha enter a basınca ise çalışıyor. Neden bilen var mıdır?
 
Kodu görmeden ne dememizi bekliyorsun?
import java.util.Scanner;

public class Soru8 {

public static int ogrenciBilgileriEkle() {
Scanner girdi=new Scanner(System.in);

System.out.println("Isminizi Giriniz;");
String isim=girdi.next();

System.out.println("Cinsiyetinizi Giriniz;");
String cinsiyet=girdi.next();

System.out.println("Vize Notunuzu Giriniz;");
int vize1=girdi.nextInt();


System.out.println("Final Notunuzu Giriniz;");
int vize2=girdi.nextInt();

int vizenotu = genelHarfNotuBelirle(vize1,vize2);
return 0;
}

public static int genelHarfNotuBelirle(int vizenotu1,int vizenotu2) {

//System.out.println("dogru");
double not = (vizenotu1 * 0.3)+(vizenotu2 * 0.7);

if (not<50){
System.out.println("Hatali not girisi yaptiniz.");
}
else {
System.out.println(" not girisi yaptiniz.");

}
return 0;
}

public static void main(String[] args) {
System.out.println(ogrenciBilgileriEkle());

}
}
Kodu görmeden ne dememizi bekliyorsun?
Kodu paylaşmama sebebim bu sorunu sadece eclipse programımı kullanırken yaşamam. Online java compiler ' larda böyle bir sorunla karşılaşmadım nedense.
 
Şimdi; main'de sout (System.out.println) içinde fonksiyon çağırıyorsunuz. Bu durumda fonksiyon içinde ne döndüğüne bakmaksınızın o en alttaki return 0 var ya, işte onu yazdıracak main.

ogrenciBilgileriEkle'yi çağırdık. O bizden girdi alıyor. En sonunda ise niyeyse int vizenotu deyip bir fonksiyon çağırıyor. Sanki o değişkeni tekrar kullanacakmış gibi.

Çağırdığı fonksiyona gidiyoruz. Değişken oluşturuyor. Değişkeni kıyaslayıp durumu yazdırıyor ve sıfır döndürüyor. Az önce kullanmadığımız değişken de sıfır değeri alıyormuş.

Programın çalışmasında bir sorun yok. Yazdığınız gibi çalışıyor.

Siz muhtemelen buna ek yapmak istiyorsunuz. Ama bize onu söylemediğiniz için ne olacağını anlayamıyoruz.

Sadece ad, cinsiyet, vize ve final alıp ona göre "hatalı giriş yaptınız" veya "giriş yaptınız" diyen bir şey şeklinde paylaşıyorum.

Kod:
import java.util.Scanner;

public class Soru8 {

    public static void ogrenciBilgileriEkle() {
        Scanner girdi = new Scanner(System.in);

        System.out.print("Isminizi Giriniz: ");
        String isim = girdi.next();

        System.out.print("Cinsiyetinizi Giriniz: ");
        String cinsiyet = girdi.next();

        System.out.print("Vize Notunuzu Giriniz: ");
        int vize1 = girdi.nextInt();

        System.out.print("Final Notunuzu Giriniz: ");
        int vize2 = girdi.nextInt();

        genelHarfNotuBelirle(vize1, vize2);
    }

    public static void genelHarfNotuBelirle(int vizenotu1, int vizenotu2) {
        double not = (vizenotu1 * 0.3) + (vizenotu2 * 0.7);

        if (not < 50)
            System.out.println("Hatali not girisi yaptiniz.");
        else
            System.out.println("Not girisi yaptiniz.");
    }

    public static void main(String[] args) {
        ogrenciBilgileriEkle();
    }
}
 
Şimdi; main'de sout (System.out.println) içinde fonksiyon çağırıyorsunuz. Bu durumda fonksiyon içinde ne döndüğüne bakmaksınızın o en alttaki return 0 var ya, işte onu yazdıracak main.

ogrenciBilgileriEkle'yi çağırdık. O bizden girdi alıyor. En sonunda ise niyeyse int vizenotu deyip bir fonksiyon çağırıyor. Sanki o değişkeni tekrar kullanacakmış gibi.

Çağırdığı fonksiyona gidiyoruz. Değişken oluşturuyor. Değişkeni kıyaslayıp durumu yazdırıyor ve sıfır döndürüyor. Az önce kullanmadığımız değişken de sıfır değeri alıyormuş.

Programın çalışmasında bir sorun yok. Yazdığınız gibi çalışıyor.

Siz muhtemelen buna ek yapmak istiyorsunuz. Ama bize onu söylemediğiniz için ne olacağını anlayamıyoruz.

Sadece ad, cinsiyet, vize ve final alıp ona göre "hatalı giriş yaptınız" veya "giriş yaptınız" diyen bir şey şeklinde paylaşıyorum.

Kod:
import java.util.Scanner;

public class Soru8 {

    public static void ogrenciBilgileriEkle() {
        Scanner girdi = new Scanner(System.in);

        System.out.print("Isminizi Giriniz: ");
        String isim = girdi.next();

        System.out.print("Cinsiyetinizi Giriniz: ");
        String cinsiyet = girdi.next();

        System.out.print("Vize Notunuzu Giriniz: ");
        int vize1 = girdi.nextInt();

        System.out.print("Final Notunuzu Giriniz: ");
        int vize2 = girdi.nextInt();

        genelHarfNotuBelirle(vize1, vize2);
    }

    public static void genelHarfNotuBelirle(int vizenotu1, int vizenotu2) {
        double not = (vizenotu1 * 0.3) + (vizenotu2 * 0.7);

        if (not < 50)
            System.out.println("Hatali not girisi yaptiniz.");
        else
            System.out.println("Not girisi yaptiniz.");
    }

    public static void main(String[] args) {
        ogrenciBilgileriEkle();
    }
}
Öğrencilerden vize1 ve vize2 isimli 2 girdi alıp, ortalamalarını Harfler ile not vermeye çalışıyorum. Girdi yaptıktan sonra normalde olması gereltiği gibi 1 defa enter a bastığımda konsolda sıradaki işleme geçse sorun kalmayacak, işin garibi online derleyicilerde böyle bir sorun olmaması. Eclipse uygulamamı silip yeniden de yükledim fakat çözüm olmadı.
 
Girdi alırken gösterdiğim örnekteki gibi System.out.println yerine System.out.print kullanın. Girdi alırken de .nextLine() yapmayı deneyin.

Ben IntelliJ IDEA kullanıyorum ve bende de sorun olmadı.
Denedim hocam, ne yazık ki hala aynı. Bir kez daha silip yeniden yüklerim, olmazsa başka bir uygulama kullanacağım herhalde. Hiçbir yerde bulamadım çözümü.
 

Geri
Yukarı