Java等式整数

时间:2015-01-07 06:17:48

标签: java

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

使用带有一个INTEGER参数“initialValue”并返回以下内容的方法实现一个类:

一个。如果initialValue等于1 - 返回2(INTEGER)
湾如果initialValue等于2 - 返回1(INTEGER)

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

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

但我想这是一个基本的解决方案。你知道除此之外的任何方法变化吗?感谢。

5 个答案:

答案 0 :(得分:4)

使用3

进行XOR时会有点奇特的解决方案
return initialValue ^ 3;

答案 1 :(得分:3)

您可以使用条件运算符?:

之类的东西
private static int myMethod(int initialValue) {
    return initialValue == 1 ? 2 : 1;
}

三元运算符在Java Tutorials中描述

  

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

答案 2 :(得分:1)

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

private static int myMethod(int initialValue) {
    return initialValue % 2 + 1;
}

祝你CS的愿望好运!

答案 3 :(得分:0)

也可以这样做,

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

答案 4 :(得分:0)

public static void main(String[] args) {
int input;
// code for input value 
System.out.print(myMethod(input));

}

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

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