姐姐,哥哥们,菜鸟又来问一个关于return的问题。

joyscsnd 2012-10-26 08:05:49

public class return1 {
public static int gcd(int a, int b) {
int min = a;
int max = b;
if (a > b) {
min = b;
max = a;
}
if (min == 0)
return max;
else
return gcd(min, max - min);
}
public static void main(String[] args) {
System.out.println(return1.gcd(75, 15));
}

}
小弟有一个问题:上面表达式输出结果是15
请问大家步骤是怎么来的,尽量详细点,谢谢
小弟还有个问题:开始的时候 gcd(int a, int b)
int min = a;
int max = b;
到后面if(a>b) min = b;
max = a; 他们为什么又不同了呢,是互换位置了吗?
小弟刚学java几天。希望得到大家的指点。谢谢
...全文
133 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiang9011 2012-10-26
  • 打赏
  • 举报
回复
首先a=75,b=15,a>b,所以执行第一个if语句 min=15,max=75然后进行判断min==0?显然的不是,就运行else的语句,return gcd(min, max - min),即return gcd(12,60),然后同上面再重复判断,知道min==0,程序结束。
joyscsnd 2012-10-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
这是递归。
第一遍 min=15,max=75
第2遍 min=15,max=60
第3遍 min=15,max=45
第4遍 min=15,max=30
第5遍 min=15,max=15
第6遍 min=15,max=0
当执行到第六遍的时候,满足a>b 而且满足min=0;因此返回了15
返回15,为什么0不返回呢?
  • 打赏
  • 举报
回复
debug一下,看看编译器是怎么一步步走的
joyscsnd 2012-10-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
这是递归。
第一遍 min=15,max=75
第2遍 min=15,max=60
第3遍 min=15,max=45
第4遍 min=15,max=30
第5遍 min=15,max=15
第6遍 min=15,max=0
当执行到第六遍的时候,满足a>b 而且满足min=0;因此返回了15

if(a>b)
{
min = b;
max = a;
}
是换位置。
[/Quote]

java语法不是从左到右,至上而下执行的吗?怎么跑到最后开始执行了?另外return1.gcd是什么意思啊?这是一种书写规范吗?
haorengoodman 2012-10-26
  • 打赏
  • 举报
回复
1>min=15 , max=75;min!=0;gcd(min, max - min);
2>min=15 , max=60;min!=0;gcd(min, max - min);
3>min=15 , max=45;min!=0;gcd(min, max - min);
4>min=15 , max=30;min!=0;gcd(min, max - min);
5>min=15 , max=15;min!=0;gcd(min, max - min);
6>min=0 , max=15;min==0,结束。

单步一下。
wang7535067 2012-10-26
  • 打赏
  • 举报
回复
这是递归。
第一遍 min=15,max=75
第2遍 min=15,max=60
第3遍 min=15,max=45
第4遍 min=15,max=30
第5遍 min=15,max=15
第6遍 min=15,max=0
当执行到第六遍的时候,满足a>b 而且满足min=0;因此返回了15

if(a>b)
{
min = b;
max = a;
}
是换位置。
内容概要:本文档为鹏鼎EES项目第二阶段关于设备闲置与富余识别的需求设计方案,旨在通过自动化方式识别低利用率设备,减少资产浪费。系统基于OEE系统提供的设备近6个月时间稼动率数据,设定“闲置”(连续6个月稼动率为0%)和“富余”(6个月平均稼动率≤30%)的判断标准,每周一自动执行识别任务并生成记录。支持在系统中查看识别结果列表、筛选导出数据、发起闲置申请及删除记录(管理员权限)。同时,系统通过鼎加机器人按设备闲置/富余持续时长(7天、30天、90天、180天)逐级向上推送预警消息至维护人员、厂长、处长、经管等层级,推动处理。此外,若设备被判定为闲置但未提交闲置申请,系统将向维护人员和设备课长发送D+提醒。; 适合人群:系统设计人员、开发人员、测试人员、设备管理人员及项目实施相关人员;尤其适用于熟悉OEE系统、设备管理流程及企业信息化系统的专业人员;; 使用场景及目标:① 实现设备利用率的动态监控与闲置风险预警;② 支持企业优化设备资源配置,降低资产闲置成本;③ 推动设备闲置处理流程自动化与责任到人机制建立;④ 为后续设备处置、调配、报废等决策提供数据支撑;; 阅读建议:本文档为研发与实施阶段的核心指导文件,涉及系统逻辑、数据来源、权限控制与集成接口等关键内容,建议结合OEE数据对接情况、企业组织架构与设备管理流程协同研读,并关注阈值配置、提醒机制与状态联动等可配置项的实际业务适配性。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧