【问题标题】:How to write this Program in methods如何在方法中编写此程序
【发布时间】:2014-04-17 00:21:44
【问题描述】:

这是我为检查阿姆斯壮编号而编写的程序。我如何用方法编写它

例如,如果我想将其分解为以下 4 种方法

  • void getnum()
  • int check()
  • 无效显示
  • 以及启用任务的主要方法

    import java.util.Scanner;
    class Arm_check1
    {
        public static void main(String args[])
        {
            int n=0;
            int ori;
            int z;
            System.out.println("Enter a No.");
            Scanner Prakhar=new Scanner(System.in);
            n=Prakhar.nextInt();
            int digits=(int)Math.floor(Math.log10(n)+1);
            System.out.println("No of Digits :"+digits);
            int a[]=new int[digits];
            int sum=0;
            ori=n;
            for(int i=0;i<digits;i++)
            {
                a[i]=n%10;
                n=n/10;
            }
            for(int i=0;i<a.length;i++)
            {
                sum=(int)Math.pow(a[i],3)+sum;
            }
            System.out.println(sum);
            System.out.println(ori);
            if(sum == ori)
            {
                System.out.println("No. is Armstrong");
            }
            else
                System.out.println("No. is not Armstrong");
        }
    }
    

这是我看到的唯一方法,但我的教授说我们不允许在考试中使用相同的方法,即......

void main(){
getnum()
} .... and So On.. 

这是我在Yluns回答后又写的

    import java.util.Scanner;
    class Arm_check2
    {
        int n=0;
        int ori;
        int sum;
        void getnum()
        {
            System.out.println("Enter a No.");
            Scanner Prakhar=new Scanner(System.in);
            n=Prakhar.nextInt();
            check();
        }

        int check()
        {
            int digits=(int)Math.floor(Math.log10(n)+1);
            System.out.println("No of Digits :"+digits);
            int a[]=new int[digits];
            int sum=0;
            ori=n;
            for(int i=0;i<digits;i++)
            {
                a[i]=n%10;
                n=n/10;
            }
            for(int i=0;i<a.length;i++)
            {
                sum=(int)Math.pow(a[i],3)+sum;
            }
            dispsum(sum);
            return sum;

        }

        void dispsum(int sum)
        {
            System.out.println(sum);
            System.out.println(ori);
            if(sum == ori)
            {
                System.out.println("No. is Armstrong");
            }
            else
                System.out.println("No. is not Armstrong");
        }
        void main()
        {
            getnum();
        }
    }

【问题讨论】:

  • 何不先自己尝试一下。否则,将其张贴在这里而不展示你的努力,你只是在欺骗自己,失去了宝贵的学习机会。
  • 这看起来像是一道作业题。
  • 这很简单,亲爱的。只需破坏代码
  • 我了解使用方法的概念,只是不知道如何使用它,任何帮助将不胜感激:)

标签: java methods


【解决方案1】:

你的主要方法必须保持这种方式:

public static void main(String[] args){
  // function body
}

我看到您已经将旧函数体拆分为新函数,为什么不尝试按您需要的顺序调用所有这些新函数?

并且您将它们声明为int return-type,因此您必须存储该结果才能使代码的最后一部分正常工作。

【讨论】:

    【解决方案2】:

    由于我没有看到合理的尝试,我不会为您编写任何示例代码。不过我会给你这些参考资料供你阅读。

    阅读methods: Java Methods。它们按照以下格式声明:

    (private/public) static (return type) (name of method) (parameters){
        //method body
    }
    

    您的主要方法应该处理调用您的其他方法。

    【讨论】:

    • 郑重声明,这不是家庭作业,而是我在某个地方收集的练习题
    猜你喜欢
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多