以下是我的项目的确切词语
“编写一个类和测试程序,提示用户输入一个三位数字 这样的数字是有序的。例如123,567。程序将循环直到a 输入正确的值。 (576不正确)“
我已经编写了这个搜索特定密码的程序,但我需要的是搜索数字有序的任何数值,并且我在编写搜索非特定值的程序时遇到问题。到目前为止我有什么。
import java.util.Scanner;
public class pass {
public static void main(String[] args) {
int passw;
Scanner sc = new Scanner(System.in);
do {
System.out.print("Enter 3 digits in sequence");
passw = sc.nextInt();
if(passw != 567) {
System.out.println("Access Denied");
}
else {
System.out.println("Access Granted");
}
}
while(passw != 567);
}
}
答案 0 :(得分:0)
您可以使用方法检查给定的数字是否有序。
private boolean isInOrder(int number){
int digit = -1;
while(number > 0){
if (digit != -1 && digit != (number % 10) + 1)
return false; // Since the number is not in order
digit = number % 10;
number /= 10;
}
return true; // If the number is in order
}
此方法可以检查数字(任何长度,不仅是3)是否符合问题中指定的顺序。
答案 1 :(得分:-2)
由于您知道您的“密码”将是一个只有三位数的整数,因此您可以使用if语句轻松完成数字是否已订购。试试下面的代码,看看它是否适合你!
public class ThreeDigitPasswordTest {
public static boolean testPassword(int number) {
char[] cArr = String.valueOf(number).toCharArray();
if((cArr[2] == cArr[1] + 1) && cArr[1] == cArr[0] + 1)
return true;
return false;
}
public static void main(String[] args) {
System.out.println(testPassword(567)); //prints "true"
System.out.println(testPassword(576)); //prints "false"
}
}