java - 为什么我的程序与所需的 if/else 语句不匹配?
问题描述
我不明白为什么我的程序匹配错误的 if 语句,例如当我使用 133 作为输入时,代码将执行It's a two digit number.
而我希望它执行It's a three digit number.
这是我的代码:
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Input Digits: ");
int id = input.nextInt();
if(id >10){
System.out.print("It's a two digit number");
}
else if(id >100){
System.out.print("It's a three digit number");
}
else if(id >1000){
System.out.print("It's a four digit number");
}
else if(id >10000){
System.out.print("It's a five digit number");
}
else
System.out.print("Number is not between one- and six-digit number");
}
}
输出:
Input Digits: 133
It's a two digit number.
解决方案
它将执行它匹配的第一个 if 语句,在这种情况下:id>10。
将您的代码更新为:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Input Digits: ");
int id = input.nextInt();
if(id >=10000 && id <100000){
System.out.print("It's a five digit number");
} else if(id >=1000 && id <100000){
System.out.print("It's a four digit number");
} else if(id >=100 && id <100000){
System.out.print("It's a three digit number");
} else if(id >=10 && id <100000){
System.out.print("It's a two digit number");
} else {
System.out.print("Number is not between one- and six-digit number");
}
}
}
推荐阅读
- php - 如何在 Selenium 中循环选项卡 - PHP Webdriver
- c++ - 对 c 或 c++ 中的递增和递减运算符感到困惑。预增或预减背后的实际逻辑是什么
- authentication - 如何使用 Vapor 创建登录和注销(基本身份验证)
- swift - AVFoundation PDF417 扫描仪并不总是有效
- c# - unity Tilemap 从 x 和 y 索引获取 Vector3 世界位置
- java - 当我尝试从数据库的数据中命名 JLabel 时,我的代码显示 java.lang.NullPointerException。我该如何解决?
- swift - 在加载视频之前显示黑屏
- sas - SAS:根据减少月份获取数字列表
- java - JavaFX - 在 ListView 中创建不可选择的项目
- java - 为什么使用 JUnit 测试 Feign 客户端案例 java.lang.IllegalStateException: Shutdown in progress