Java 如何结束while循环

Java 如何结束while循环,java,Java,我的类程序要求运行程序,只要用户没有输入-99。当我运行程序并输入一个不是-99的可用数字时,控制台将运行一个连续循环应答,直到我必须按end。 如何更改程序,使每个输入都有一个答案,程序重新启动,直到用户输入-99 import java.util.Scanner; //import scanner import java.io.*; //import library public class is_odd_or_even_number {//begin class public

我的类程序要求运行程序,只要用户没有输入-99。当我运行程序并输入一个不是-99的可用数字时,控制台将运行一个连续循环应答,直到我必须按end。 如何更改程序,使每个输入都有一个答案,程序重新启动,直到用户输入-99

import java.util.Scanner; //import scanner 
import java.io.*; //import library 

public class is_odd_or_even_number {//begin class

   public static void main(String []args) {//begin main

      Scanner input = new Scanner(System.in);

      //use try/catch method to test for invalid input
      try{
      //promt user to input a value 
      System.out.print("Enter a positive integer value: ");
      int number = input.nextInt();

      //PART I NEED HELP WITH **************
      while (number != -99){
      //Start of if statement to test which to print and call of isEven method
         if (isEven(number)) {
         System.out.println("Your number is Even!");  
         }
         else 
         System.out.println("Your number is Odd!");

         }
      }
      //open catch method and print invalid 
      catch(Exception notNumber) {
         System.out.println("Input not a number, try again.");
      }
   }
   //begin testing for odd or even in new method 
   public static boolean isEven(int num){
         return(num & 1) == 0;
      }
}

在这里,您不允许用户在循环之前输入第一个输入的其他内容

从用户检索输入:

  int number = input.nextInt();
应该在循环中。

试试看:

  int number = 0;

  //PART I NEED HELP WITH **************
  while (number != -99){
    number = input.nextInt();

    //Start of if statement to test which to print and call of isEven method
     if (isEven(number)) {
       System.out.println("Your number is Even!");  
     }
     else 
       System.out.println("Your number is Odd!");
     }
  }
你可以这样做;)


所以它会一直问到你没有像你说的那样写-99,但是如果你要求一个“正整数”,通常没有人会写-99:p

这里是
main
方法,只要用户没有输入-99,它就会运行

您应该在
while
循环中包含所有代码(甚至try/catch)

你可以接受这个答案,以防它是你想要的:)

结束一个while循环 您可以使用布尔值
shouldContinue
来控制程序是否应继续到下一个输入

if (number != -99) {
    shouldContinue = true;
} else {
    shouldContinue = false;
}
这可以简化如下:

shouldContinue = number != -99 ? true : false;
// or even shorter
shouldContinue = number != -99;
正确读取值 但您需要确保在每次循环执行时重置输入的数字,以便读取下一个数字:

while (shouldContinue) {
    ...
    number = input.nextInt();
}
其他增强功能
  • 不要导入未使用的包或类
  • Java类名的用例
  • 使用注释样式
    /***/用于Javadoc
  • 始终尝试避免无限循环,例如,在每个循环中使用整数计数
    trys
    和倒计时
下面是最终的答案:

import java.util.Scanner;

public class IsOddOrEvenNumber {

    public static void main(String []args) {

        Scanner input = new Scanner(System.in);
        boolean shouldContinue = true;
        int tries = 0;

        while (shouldContinue && tries < 10) {

            try {
                System.out.print("Enter a positive integer value: ");
                int number = input.nextInt();
                if (isEven(number)) {
                    System.out.println("Your number is Even!");
                } else {
                    System.out.println("Your number is Odd!");
                }
                shouldContinue = number != -99 ? true : false;
            } catch (Exception notNumber) {
                System.out.println("Input not a number, try again.");
            }
            tries--;
        }
        System.out.println("Game over.");
    }

    /**
     * Begin testing for odd or even in new method
     */
    public static boolean isEven(int num){
        return (num & 1) == 0;
    }
}
import java.util.Scanner;
公共类IsOddOrEvenNumber{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
布尔值shouldContinue=true;
int=0;
while(应继续并尝试<10){
试一试{
System.out.print(“输入正整数值:”);
int number=input.nextInt();
if(isEven(编号)){
System.out.println(“你的号码是偶数!”);
}否则{
System.out.println(“你的号码是奇数!”);
}
shouldContinue=number!=-99?真:假;
}捕获(异常编号){
System.out.println(“输入非数字,再试一次”);
}
尝试--;
}
System.out.println(“游戏结束”);
}
/**
*在新方法中开始测试奇数或偶数
*/
公共静态布尔值isEven(int num){
返回值(num&1)==0;
}
}
while (shouldContinue) {
    ...
    number = input.nextInt();
}
import java.util.Scanner;

public class IsOddOrEvenNumber {

    public static void main(String []args) {

        Scanner input = new Scanner(System.in);
        boolean shouldContinue = true;
        int tries = 0;

        while (shouldContinue && tries < 10) {

            try {
                System.out.print("Enter a positive integer value: ");
                int number = input.nextInt();
                if (isEven(number)) {
                    System.out.println("Your number is Even!");
                } else {
                    System.out.println("Your number is Odd!");
                }
                shouldContinue = number != -99 ? true : false;
            } catch (Exception notNumber) {
                System.out.println("Input not a number, try again.");
            }
            tries--;
        }
        System.out.println("Game over.");
    }

    /**
     * Begin testing for odd or even in new method
     */
    public static boolean isEven(int num){
        return (num & 1) == 0;
    }
}