java - 如何在类中从第一种方法调用方法到第二种方法
问题描述
给定数字,我们需要找出它是平方数还是三角形数?这个“num”应该首先验证正方形方法,然后它必须使用三角形方法。
问题是:如果我的正方形方法不适合,我怎么能从正方形调用三角形或任何其他方法来调用三角形方法。
这是我的代码:
public class HelloWorld{
public static void main(String []args){
class Number{
int num;
public boolean isSquare(){
int squareNumber=1;
while(squareNumber<num){
squareNumber = num*num;
}
if(squareNumber%num==0)
{
System.out.println(num+" is a Square number");
}
else
{
return isTriangle();
}
boolean isTriangle() {
int x=1,triangleNumber=1;
while(triangleNumber<num){
x++;
triangleNumber = triangleNumber + x;
}
if(triangleNumber==num)
{
System.out.println(num+" is a triangle number");
}
else
{
System.out.println(num+" is applicable for both triangle and square numbers");
}
}
}
}
Number mynum = new Number();
mynum.num=2;
System.out.println(mynum.isSquare());
}
}
解决方案
所以首先,你这样做会容易得多:
public boolean isSquare(int num){
...
}
所以摆脱:
mynum.num = yourNumber;
您经常会在方法中遇到这种方法,其中原始输入可以是任何数字/文本......
现在对于您的代码,一个非常好的优化是:
public boolean isSquare(int num){
if (num>0) //To check if the number is null or not...
squareNumber = num*num;
}
因为while循环条件总是满足一次,第一次进入后就退出了……
继续下一部分......对我来说,这非常棘手,因为我认为它没用,因为它总是返回 true(文本),因为“squareNumber”总是以 num 作为根,并且总是通过 if (squareNumber%num ==0) 为真,并且永远不会调用 isTriangle(...) 。
更平易近人的方式是:
public class HelloWorld {
static String result;
public static void main(String[] args) {
int mynum = 36;
System.out.print(isSquare(mynum)+isTriangle(mynum));
}
public static String isSquare(int num){
if ((Math.sqrt(num)==(int)Math.sqrt(num))){
return "Given number is a square";
} else return "Given number isn't a square,";
}
public static String isTriangle(int num){
if (isSquare(8*num+1)){
return " but is still a triangular number!";
} else return " but not a triangular number.";
}
}
推荐阅读
- css - 运行 for 循环后卡片未保持水平对齐
- bash - 将 bash 中的 ctrl-c 发送到 perf 命令
- linux - 如何使用 nginx 用户运行 nginx
- python - Python 用于二维矩阵上的圆形过滤器/窗口?
- c++ - 在 C++ 项目中使用预编译头文件
- javascript - 使用 typeorm 在 postgres 中保存多对多列
- yii2 - 如何在使用相同数据库的两个 yii2 应用程序中管理登录
- python - 使用自定义权重在pytorch中初始化权重?
- javascript - How to format complicated array with ._groupBy
- python - 基于高变量相关性的相关矩阵过滤与使用向量在规模上选择与目标变量相关性最小的相关性