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();
}
}