Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java相等整数_Java - Fatal编程技术网

Java相等整数

Java相等整数,java,Java,我觉得这有点让人困惑,我正试图解决我在互联网上发现的这个问题,作为我的编程练习: 使用方法实现一个类,该类接受一个整数参数“initialValue”,并返回以下内容: a。如果initialValue等于1-返回2(整数) B如果initialValue等于2-返回1(整数) 这就是我到目前为止所做的: public static void main(String[] args) { System.out.print(myMethod(1)); } private static

我觉得这有点让人困惑,我正试图解决我在互联网上发现的这个问题,作为我的编程练习:

使用方法实现一个类,该类接受一个整数参数“initialValue”,并返回以下内容:

a。如果initialValue等于1-返回2(整数)
B如果initialValue等于2-返回1(整数)

这就是我到目前为止所做的:

 public static void main(String[] args) {

    System.out.print(myMethod(1));

}

private static int myMethod(int initialValue) {
    int n = 1;
    if(initialValue == n) {
        return 2;
    } else {
        return n;
    }
}

但我想这是一个基本的解决方案。你知道除此之外的其他方法吗?谢谢。

对于
3

return initialValue ^ 3;

也可以这样做,

private static int myMethod(int initialValue) {
    switch (initialValue){
         case 1:
             return 2;
         case 2:
             return 1;
         default:
             return 0;
    }
}

如果动态插入值,这可能会提供更好的输出

您可以使用条件运算符
?:
以及类似的内容

private static int myMethod(int initialValue) {
    return initialValue == 1 ? 2 : 1;
}
三元运算符如下所述

另一个条件运算符是
?:
,可以将其视为if-then-else语句的简写(在本课程的部分中讨论)。此运算符也称为三值运算符,因为它使用三个操作数。在以下示例中,此运算符应理解为:“如果someCondition为true,则将value1的值指定给result。否则,将value2的值指定给result。”


我真的希望你计划用这个来学习,不要把它当作你自己的作品交上来。你的方法很有效。但是,您也可以使用模运算符(当然,假设只有两个输入是1和2)


祝你的CS愿望好运

initialValue=3的预期输出是什么?否则,对于除1之外的任何值,都会将结果设置为1。使用三元运算符,
returninitialvalue==1?2 : 1;
@Jongot:但它也会返回1,而不是2..@Prashant哦,这不包括在OP的要求中。该任务是否需要
整数
对象或原语
整数
作为参数?如果任务是使用
Integer
,它会变得更有趣,因为您可能希望使用
equals()
而不是
==
(对象相等与标识)。感谢这是一个很酷的单行解决方案:)我几乎忘记了XORS。稍微清晰一点(IMO)将
返回3-initialValue我们大多数人处理普通算术比处理位数学更好。这个可爱但狡猾的答案不应该有这么多的投票。啊,如果你把它作为一个答案早些时候@PM77-1我认为即使是提示也需要语法正确
private static int myMethod(int initialValue) {
    return initialValue == 1 ? 2 : 1;
}
private static int myMethod(int initialValue) {
    return initialValue % 2 + 1;
}