java - 初学者java, "Required: int. Found: Boolean"?

标签 java

这是我的代码。我不明白我搞砸了什么。 它说年龄是一个 boolean 值而不是一个整数,我不知道为什么。

import java.util.Scanner;
public class F_DoIRemember {

    public static void main(String args[]){
      int age;
      Scanner inp = new Scanner(System.in);
      System.out.println("What is your age?");
      age = inp.nextInt();
              switch(age){

                  case(age<5):
                      System.out.println("Are you learning how to tie your shoes?");

                  case(age==5):
                      System.out.println("You know how to tie your shoes!");

                  case(age>5):
                      System.out.println("YOU BETTER KNOW HOW TO TIE YOUR SHOES!");
           }
      }
 }

最佳答案

switch(age){

将检查年龄的值。由于 age 的数据类型是 int,因此它总是需要您提供一个 int 值来再次检查。但是您提供的是 bool 值,(age > 5) 将生成 bool 值。

情况中不允许有条件。

要么将age更改为bool(从用户其他地方获取输入),要么将其用作

case 5: 
   System.out.println("Are you learning how to tie your shoes?");
   break;

您可以在其他地方使用此条件,但不能在 case 标签中使用。

由于您使用的是动态值,

age = inp.nextInt();

这不会总是相同的,请使用

if(age > 5) {
   // code
} else if(age ==5) {
   // code
} else { // don't need to use (age < 5)
   // code
}

我认为,您确实需要使用这个而不是switch

关于java - 初学者java, "Required: int. Found: Boolean"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24343105/

相关文章:

java - 忽略 RabbitMQ 预取

java - JTA 事务管理器如何在运行时部署?

java - 是否有构建 64 位 JD2XX DLL 的简单方法?

java - 日期格式不起作用?

java - XSL 转换期间的 Unicode 字符

java - 在java servlet中将文件从共享文件夹复制到本地文件夹

java - gradle xjc 任务中的多个绑定(bind)文件

java - 使用 fop 1.1 打印时出现空白页

java - Android 应用程序中的编码问题 (WebView.LoadData())

java - LocalDate 无法用 'ww' 解析 'yyyy'