Bagaimana cara memasukkan nomor oleh pengguna untuk keluar dari loop?

Saya mencoba membuat pengguna memasukkan angka apa pun antara 0 dan 10 dalam jumlah yang tidak terbatas hingga mereka ingin berhenti. Mereka berhenti dengan memasukkan nilai -1. Sejauh ini saya dapat membuat apa yang terjadi ketika mereka memasukkan nilai yang benar, tetapi ketika mereka memasukkan -1 (yang merupakan nilai yang tidak valid dalam loop while), program mengetahui bahwa itu tidak valid. Yang saya cari hanyalah program mengecualikan -1 untuk kemungkinan masukan yang tidak valid, dan membuat program berhenti meminta masukan lebih lanjut. Inilah kode saya sejauh ini:

    int userInput=0;
    System.out.println("Please enter numbers ranging from 0 to 10 (all inclusive).");
    System.out.println("When you want to stop, type and enter -1.");


    while (userInput <= 10 && userInput >= 0)
    {
        userInput=Integer.parseInt(br.readLine());

        while (userInput > 10|| userInput < 0)
        {
            System.out.println("That number is not in between 0 and 10. Please enter a correct number.");
            userInput=Integer.parseInt(br.readLine());
        }
        sum=sum+userInput;
        freq++;
    }
    while (userInput == -1)
    {
        System.out.println("You have chosen to stop inputing numbers.");
    }

Maaf atas pemahaman saya yang terbatas :/


person r2d2    schedule 07.11.2015    source sumber


Jawaban (1)


Saya menyarankan Anda mencoba melakukan terlalu banyak dengan loop while. Seperti ada tertulis, Anda tidak pernah keluar dari yang pertama. Jika Anda memasukkan angka antara 0 dan 10, ia akan kembali dan bertanya lagi. Jika Anda memasukkan apa pun selain itu, Anda menekan perulangan while yang bersarang dan akhirnya meminta nomor lagi. Pikirkan tentang alirannya dan apa yang Anda ingin lakukan. Berikut ini garis besar singkat salah satu cara untuk melakukannya:

System.out.println("Please enter numbers ranging from 0 to 10 (all inclusive).");
System.out.println("When you want to stop, type and enter -1.");
keepgoing = true;
while(keepgoing) {
    userInput=Integer.parseInt(br.readLine());
    if((userInput <= 10 && userInput >= 0) {
        sum=sum+userInput;
        freq++;
    }
    else if(userInput == -1) {
        System.out.println("You have chosen to stop inputing numbers.");
        keepgoing = false;
    }
    else {
        System.out.println("That number is not in between 0 and 10. Please enter a correct number.");
    }
}

Setidaknya menurutku itu sampai di sana. Ada berbagai metode untuk mengontrol aliran kode Anda. Ada baiknya mengetahui kapan harus menggunakan yang mana.

person emd    schedule 07.11.2015