While Döngüsü Sorunu

Askeraga

Hectopat
Katılım
6 Şubat 2014
Mesajlar
8
İyi geceler arkadaşlar. Ben Java programlama dilini yeni yeni öğrenmeye çalışan biriyim, kendime küçük bir yaş hesaplaması yapan bir program yazdım. Sorunum şu ki bunu bana devamlı sormasını istiyorum. Yani adınız, yaşınız vs vs..

Kod:
int f = -1;
while( f != -1)
{    
Scanner girdial = new Scanner (System.in);
System.out.println("Merhaba Adınız");
String  a = girdial.nextLine();
System.out.println("Merhaba " + a +  " Yaşınız ");


int b = girdial.nextInt();
int c = 2014 - b;
System.out.println("Dogum Tarihiniz :" + c);
}
Kodlarım bunlar fakat while döngüsüne koşulu başta tanımladığı için ve true verdigim için devamlı giriyor. Bu sefer döngüden çıkmıyor "do while" da denedim fakat nafile, yani bu döngüyü döngü içerinde bir "int" ile bitirebilmem lazım yardımcı olabilecek arkadaşımız var mı acaba ?
 
Son düzenleyen: Moderatör:
Onu yaptım fakat benim istediğim kullanıcı bunu ismini yazarken yapabilsin :)

Kod:
import java.util.Scanner;


import javax.swing.JOptionPane;




public class Yashesapla 
{
public static void main(String[]args)
{


Scanner bitir = new Scanner (System.in);
int f = bitir.nextInt();
System.out.println("Merhaba Adınız / Çıkış İçin -1");
do
{    
Scanner girdial = new Scanner (System.in);
System.out.println("Merhaba Adınız / Çıkış İçin -1");
String  a = girdial.nextLine();
System.out.println("Merhaba " + a +  " Yaşınız ");


int b = girdial.nextInt();
int c = 2014 - b;
System.out.println("Dogum Tarihiniz :" + c);
}
while(f != -1);
Bu şekilde daha öncede yapmıştım ama benim tam olarak istediğim "adınız" dediğim yerde "-1" yazarsa döngüden çıkması yada o programı bir defa çalıştırması.
 
Son düzenleyen: Moderatör:
Şu an dönügüsünden çıkmaz, "f" degişkeni "-1" eşit değilse yap diyorsun ve bir daha değer atamadığın için çıkmıyor. While(a =! cık) mesela yapabilirsin. "a" degişkenin string olduğu için bir karaktere eşit değilse demek zorundasın.
 
Son düzenleyen: Moderatör:
O zamanda sorun sonsuz döngüye girmesi oluyor başta değeri veriyor kullanıcı ondan sonra devamlı adın yaşın diye devam ediyor. Peki sonlandırmak için "break" komutuna "int" felan ataya biliyormuyuz ? Yada döngüyü başta verdigimizden dolayı istedigimiz zaman durdurabilecegimiz bir kod var mı ?

- - - Güncellendi - - -

Kod:
import java.util.Scanner;


import javax.swing.JOptionPane;




public class Yashesapla 
{
public static void main(String[]args)
{
System.out.println("Çıkış İçin -1 devam etmek için herhangi bir sayı giriniz");
    Scanner oku = new Scanner (System.in);
int f =oku.nextInt();
while (f != -1)
{    
Scanner girdial = new Scanner (System.in);
System.out.println("Merhaba Adınız ");
String  a = girdial.nextLine();
System.out.println("Merhaba " + a +  " Yaşınız ");


int b = girdial.nextInt();
int c = 2014 - b;
System.out.println("Dogum Tarihiniz :" + c);
}
Yani anlatmak istediğim burada girilen sayı "-1" dışında olduğunda döngüden çıkmıyor bu sefer devamlı isim ve yaş istiyor. Sonsuz döngüye giriyor. Bu yüzden çalışacak kod içerisinde bunu tanımlayabilmek istiyorum. Yada tanımlanmıyorsa alternatifi nedir onu öğrenmek istiyorum. Kusura bakmayın yeniyim bu konuda yardımcı olursanız sevinirim.

- - - Güncellendi - - -


Yardımın için gerçekten teşekkür ederim arkadaşım ama sorunumu sonunda çözdüm. Çözümü yazayım belki birinin işine yarar.

"while" döngüsünü oluşturduktan sonra içinde bir tane "if" koşulu açtım onu "b String"ine eşitleyip koşulu istedigim bir sayıya ayarladım.

Böylelikle sonsuz döngüden kullanıcı istediği zaman belirtilen koşulu sağlayarak çıkabiliyor. Yani programı sonlandırabiliyor. Kodlarda aşağıdaki şekilde;

Kod:
import java.util.Scanner;


import javax.swing.JOptionPane;




public class Yashesapla 
{
public static void main(String[]args)
{
System.out.println("Çıkış İçin -1 devam etmek için herhangi bir sayı giriniz");
    Scanner oku = new Scanner (System.in);
int f =oku.nextInt();
while (f != -1)
{    
Scanner girdial = new Scanner (System.in);
System.out.println("Merhaba Adınız ");
String  a = girdial.nextLine();
System.out.println("Merhaba " + a +  " Yaşınız / Çıkış  İçin 1");


int b = girdial.nextInt();
int c = 2014 - b;
System.out.println("Dogum Tarihiniz :" + c);
if (b == 1)
{
  System.out.println("Programsonlandı");
  break;
}
}
}
 
Son düzenleyen: Moderatör:
Uyarı! Bu konu 11 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı