【问题标题】:Java | int Method | I need ELSE {Return nothing}爪哇 |整数方法 |我需要 ELSE {Return nothing}
【发布时间】:2015-10-21 03:14:51
【问题描述】:

我遇到过一种情况,我需要使用一种方法来检查一个从 10 到 50 的数字的两位数之和是否大于 10,然后显示该数字。我必须使用 for 循环。

这是我的主要内容:

public class nested_loop2 
{ 
public static void main(String args[])  
{ 
    for (int i=10;i<=50;i++){
       System.out.println(ax(i));       
    }
}

这是我的方法:

   public static int ax(int i){
       int a=i/10;
       int b=i%10;
       if((a+b)>10){
           return i; 
       }
       else { 
          return 0;
       }
    }
 }

我遇到的问题是我希望它只显示那些通过验证的特定数字。在当前状态下,它还会为所有不适合的打印输出 0。我不希望它返回 0,我只是希望它不为 else{} 语句返回任何内容。

【问题讨论】:

  • 是否可以简单地将循环中的行替换为“if (ax(i) > 0) System.out.println(ax(i));” ?确定你调用该方法两次,但这有关系吗?
  • 这个算法是干什么用的?
  • 检查10到50之间的两位数之和是否大于10,然后显示该数。

标签: java if-statement methods return


【解决方案1】:

您需要在ax 方法中返回的唯一信息是数字总和是否大于10。顺便说一句,名称ax 并没有描述您的方法的作用。也许你可以使用sumOfDigitsGreaterThan10

您无需返回int;您可以返回boolean。不要返回i,而是返回true。不要返回0,而是返回false

然后在您的main 方法中,使用if 语句测试返回的boolean 以确定是否打印数字。

或者,如果数字总和大于 10,您可以使该方法 ax 打印数字本身,而不是在 else 情况下打印任何内容。此方法现在将返回 void

【讨论】:

  • 这听起来是一种非常实用的方法。谢谢。
  • 最后一个想法:没有其他方法可以为此使用 int 方法吗?
  • 这是正确的想法。最好争取单一目的的方法。此外,至少想出一些更有意义的方法名称是值得的。
【解决方案2】:

另一种简单的解决方法是在函数中打印数字。它看起来像这样:

主要:

public static void main(String args[])  
{ 
    for (int i=10;i<=50;i++){
        ax(i);
    }
}

方法:

public static void ax(int i){
    int a=i/10;
    int b=i%10;
    if((a+b)>10){System.out.println(i);}
}

【讨论】:

    【解决方案3】:

    由于您的ax() 已经设计为在满足条件时返回int,因此只需检查返回的结果是否大于0。如果是,请打印。

    public static void main(String[] args) throws Exception {
        for (int i = 10; i <= 50; i++) {
            if (ax(i) > 0) {
                System.out.println(i);
            }
        }
    }
    
    public static int ax(int i) {
        int a = i / 10;
        int b = i % 10;
        if ((a + b) > 10) {
            return i;
        } else {
            return 0;
        }
    }
    

    结果:

    29
    38
    39
    47
    48
    49
    

    从这里,您可以决定优化/减少/重新设计代码以产生相同的结果。

    【讨论】:

      【解决方案4】:

      你也可以返回-1而不是0然后检查

      if(ax(i) != -1){
           print i
      }
      

      【讨论】:

      • 为什么不能让return语句保持原样,只检查返回值是否为0?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-20
      • 2020-08-21
      • 1970-01-01
      • 1970-01-01
      • 2020-08-08
      相关资源
      最近更新 更多