簡體   English   中英

我應該在作業中使用什么while循環條件?

[英]What while loop condition should I be using in my assignment?

我的班級項目要求我用Java創建代碼,以找到最少數量的硬幣。 我有那部分。 講師要求我們讓程序繼續運行,直到有人輸入零值作為輸入為止。 我已經完成了研究,並研究了如何執行此操作,似乎創建while循環是獲得所需結果的最簡單方法。 我看了幾本有關它們的教程,並了解了它們的工作原理,但是每個人都說要創建一個

while (conditions)

但我不知道情況會是什么樣。 我可以使它在其他簡單的程序中工作,例如計數器增加到10,然后停止。 但就我而言,我需要用戶輸入來停止循環,並且無法弄清楚如何執行此操作。

我的代碼是

import java.util.Scanner;

public class Coin {

    public static void main (String[] Args) {

        int quarters = 25;
        int dimes = 10;
        int nickles = 5;
        int pennies = 1;

        System.out.println("Enter in a number between 1-99");

        // "Input" Part of Code (Remember this and go back for reference)
        Scanner Userinput = new Scanner(System.in);

       int stuff = Userinput.nextInt();

       int q = stuff/quarters;
       stuff -= q*quarters;
       String A = "Number of Quarters:" +q;

       System.out.println(A);

       int d = stuff/dimes;
       stuff -= d*dimes;
       String B = "Number of Dimes:" +d;

       System.out.println(B);      

       int n = stuff/nickles;
       stuff -= n*nickles;
       String C = "Number of Nickles:" +n;

       System.out.println(C);       

       int p = stuff/pennies;
       stuff -= p*pennies;
       String D = "Number of Pennies:" +p;

       System.out.println(D);

       System.out.println("Thank you for Using My Program");
     } 

我假設while循環從頭開始,但是我不確定要添加哪種條件才能使其工作。

您有一些選擇,可以在while條件中分配填充變量並進行比較。 這樣,如果用戶輸入0,它將不會進入while循環。因此,在您的情況下:

int stuff = 0;
while((stuff = Userinput.nextInt())!=0)
{
    int q = stuff/quarters;
    stuff -= q*quarters;
    String A = "Number of Quarters:" +q;


    System.out.println(A);


   int d = stuff/dimes;
   stuff -= d*dimes;
   String B = "Number of Dimes:" +d;

   System.out.println(B);


   int n = stuff/nickles;
   stuff -= n*nickles;
   String C = "Number of Nickles:" +n;

   System.out.println(C);


   int p = stuff/pennies;
   stuff -= p*pennies;
   String D = "Number of Pennies:" +p;

   System.out.println(D);
}
System.out.println("Thank you for Using My Program");

然后,您的while循環將繼續進行迭代,直到用戶輸入0(使東東== 0)為止。

或者,您可以在無限while循環中檢查用戶輸入,然后使用“ break”命令盡早退出循環。 有時,編譯器不允許您使用直接的“ true”。 因此,將布爾值分配為true並使用它。

boolean alwaystrue = true;
while(alwaystrue)
{
    int stuff = Userinput.nextInt();
    if(stuff==0)
    {
        break;
    }
    ...
}

有幾種不同的方法可以解決此問題。 我個人首選的方式來處理while循環,該循環旨在重復進行直到用戶輸入特定值為止, while(true)簡單的while(true) 例如,假設您要在用戶輸入1-99范圍之外的值時退出:

while(true) {

    System.out.println("Enter in a number between 1-99");
    Scanner Userinput = new Scanner(System.in);
    int stuff = Userinput.nextInt();

    if(stuff < 1 || stuff > 99) {
        break;  //break is a keyword that exits the loop when a condition is met.
    }

    //do all your other stuff

}

System.out.println("Thank you for Using My Program");

當然,這不是唯一的方法,只是我個人在這種情況下的首選方法。

條件就是任何布爾值(真或假)。 在您的情況下,您想重復執行代碼直到用戶輸入0。所以一個好的條件是,如果用戶的輸入為0,我們就不再需要循環。 不知道在不給您分配作業的解決方案的情況下,我可以說的更具描述性。

條件語句是循環的停止條件

int i = 0;
while (i < 25) {  // this stops that loop once i has reached 25
    // do something
    i++;
}

在你的情況下你想要

Scanner scanner = new Scanner(System.in);
while (input != 0) {  // loop stops when you get an input of 0
                      // in human language terms, while input does not equal 0, 
                      // do something. Or you could say, until input equlas 0,
                      // keep doing something
   // so somtheing
   input  =  scanner.nextInt();
}

您似乎對“條件”部分的內容感到困惑? 在Java中,您需要具有一個可以計算為true或false的表達式。 每當循環的條件評估為真時,它將繼續執行。 在您的情況下,您要循環播放直到用戶輸入0。

while(input != 0){
   /*Code goes here*/
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM