问题:编写一个程序,提示用户是否愿意输入最小和最大数字。如果“是”,请使用for循环显示之间的数字用户输入的最小和最大数字(含)。继续执行此操作直到用户输入“完成”。
我已经写了一些代码,但是我无法按照我想要的方式工作。
package lab6;
import java.util.Scanner;
public class tester {
public static final String SENTINEL = "done";
public static void main(String[] args) {
String answer;
Scanner scan = new Scanner( System.in );
System.out.println("Would you like to enter a minimum and a maximum number?");
System.out.println( "Enter 'done' to stop" );
answer = scan.next( );
while ( answer != SENTINEL) {
switch ( answer )
{
case "yes":
case "Yes" :
System.out.print("Enter the minimum:");
int minimum = scan.nextInt();
System.out.print("Enter the maximum:");
int maximum = scan.nextInt();
if (maximum > minimum) {
System.out.println("What are the integers between " + minimum + " and "
+ maximum + ", inclusive?");
for (int i = minimum ; i < maximum +1; i++)
System.out.print(i + " ");
System.out.printf("%n");
}else {
System.out.println("Invalid input, try again");
break;}
}
}
System.out.print( "Enter the minimum " );
answer = scan.next( );
System.out.println( "Sentinel value detected. Goodbye" );
}
}
当您输入完成时,它不会退出,因为答案仍然不等于SENTINEL。通过使答案等于SENTINEL,while循环条件将不再成立。您可以尝试将其添加到switch语句中:
case "done":
System.out.print("Exiting");
answer= SENTINEL;
break;
我如何固定最终代码:
package lab6;
import java.util.Scanner;
公共类问题9 {公共静态最终字符串SENTINEL =“ done”;
public static void main(String[] args) {
String answer;
answer = " " ;
Scanner scan = new Scanner( System.in );
System.out.println("Would you like to enter a minimum and a maximum number? (input 'yes' or 'no')");
System.out.println( "Input 'done' to stop" );
while (answer != SENTINEL) {
answer = scan.next();
switch (answer) {
case "yes":
case "Yes" :
System.out.print("Enter the minimum:");
int minimum = scan.nextInt();
System.out.print("Enter the maximum:");
int maximum = scan.nextInt();
if (maximum > minimum) {
System.out.println("What are the integers between " + minimum + " and "
+ maximum + ", inclusive?");
for (int i = minimum ; i < maximum +1; i++)
System.out.print(i + " ");
System.out.printf("%n");
}else {
System.out.println("Invalid input, try again");
break;
}
System.out.println("Would you like to enter a minimum and a maximum number? (input 'yes' or 'no')");
System.out.println( "Input 'done' to stop" );
break;
case "done" :
System.out.println("Calculation terminated");
break;
case "no" :
case "No" :
System.out.println("Ok, bye");
break;
default :
System.out.println("Please input yes or no");
break;
}
}
scan.close();
}
}