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