Java 不使用循环检查数字是偶数还是奇数

Java 不使用循环检查数字是偶数还是奇数,java,Java,我遇到了不可计算的问题 plz help我必须打印一个没有循环的奇数或偶数。在Java 6或更低版本中,您不能打开字符串值。你想要的是 class bool { public static void main(String arg[]) { int n = 2; boolean b = (n % 2 == 0); System.out.print(b); String s = String.valueOf(b);

我遇到了不可计算的问题
plz help我必须打印一个没有循环的奇数或偶数。

在Java 6或更低版本中,您不能打开
字符串
值。你想要的是

class bool {

    public static void main(String arg[]) {

        int n = 2;

        boolean b = (n % 2 == 0);

        System.out.print(b);

        String s = String.valueOf(b);

        switch (s) {

            case true:

                System.out.println("even");

                break;

            default:
                System.out.println("odd");

                break;

        }


}
String s=String.valueOf(b)是无用的

也可以考虑为变量使用更多描述性的名称。code>b

不提供有关此变量在代码逻辑中的含义的信息<例如,code>isEven是一个更好的名称,请查看代码现在的可读性:

if (b) {
   System.out.println("even");
} else {
   System.out.println("odd");
}


我想在没有任何if-else和任何循环的情况下完成此操作

奇怪的要求。。。它只会使代码更不可读,更臃肿。通常,当存在两个以上的可能值时,您需要切换。无论如何:

if (isEven) {
   System.out.println("even");
} else {
   System.out.println("odd");
}

如果开关表达式是
字符串
s
,则试图使用
布尔值
大小写标签
true
,则会得到不兼容的类型。您甚至不需要
字符串
;只需使用
b
本身<代码>布尔值s不允许作为开关表达式,但如果您只有一个
布尔值
,则不需要
开关
。只需使用
if
语句。

在字符串中的大小写中使用的变量,但在每种情况下都使用布尔值:

final int result = n % 2;
switch (result) {
case 0:
    System.out.println("even");
    break;
default:
    System.out.println("odd");
}

不确定我是否正确理解了这个问题,从你们的评论来看,你们似乎不想使用if/else或switch——你们可以选择使用包装器

public static void main(final String arg[]) {
    final int n = 2;
    final boolean b = n % 2 == 0;
    System.out.print(b);
    System.out.println(b ? "even" : "odd");
}

你不需要一个循环。你已经解决了,只要睁开眼睛,不要做无用的转换。。。你认为下面这行是什么意思?布尔b=(n%2==0);在switch语句中使用布尔值之前,为什么要将其转换为字符串?您的switch语句正在检查布尔值的true或false,因此您不需要将其转换为字符串。@Alboz我正在研究错误的原因,这是实际的问题。无论如何,我扩展了我的答案。我想在没有任何if-else和任何循环的情况下这样做这里我不想使用if-else语句我修改了帖子,将if改为switch@rafalopez79您不能打开布尔型按钮。@rafalopez79现在它是正确的。我给你的韧性打+1:)
IntWrapper wrapper = new IntWrapper(n);
System.out.println("Is Even ? "+wrapper.isEven());
System.out.println("Is Odd ? "+wrapper.isOdd());

class IntWrapper
{
    private int x;
    public IntWrapper(int x)
    {
         this.x = x;
    }

    public boolen isEven()
    {
         return x%2==0;
    }

    public boolean isOdd()
    {
         return !isEven();
    }
}