Java查找最小数程序中smallest变量与if语句执行流程咨询
程序完整执行流程
- 初始化输入工具
Scanner和存储用户输入整数的ArrayList<Integer>集合 - 进入无限输入循环:每次读取用户输入的整数,若输入值为9999则终止循环,否则将输入的整数存入集合
- 初始化
smallest变量,将集合的第一个元素作为初始最小值赋值给它 - 遍历集合的所有元素:
- 取出当前下标对应的元素存到临时变量
number中 - 执行if判断:如果当前记录的最小值
smallest大于当前元素number,则将smallest更新为number的值
- 取出当前下标对应的元素存到临时变量
- 遍历结束后,打印最终的
smallest值(即用户输入的所有非9999整数里的最小值)
smallest变量与对应if语句的作用 smallest变量作用
是遍历找最小值逻辑的临时存储载体,全程记录遍历到当前位置为止的最小数值。
初始化时赋值为集合第一个元素,本质是先假设第一个元素是最小值,后续通过比对逐步修正这个值。
对应if语句if (smallest > number)的作用
这个判断是修正最小值的核心逻辑:每次比对当前遍历到的元素和已记录的最小值,如果当前元素更小,就更新smallest的值,保证smallest永远存储的是已经遍历过的所有元素里的最小值。
举个实际运行示例更便于理解,假设用户依次输入了5、3、9、1、4、9999,集合存储内容为[5,3,9,1,4]:
初始smallest = 第一个元素5
遍历到下标1的元素3:5>3判断成立,smallest更新为3
遍历到下标2的元素9:3>9判断不成立,不更新
遍历到下标3的元素1:3>1判断成立,smallest更新为1
遍历到下标4的元素4:1>4判断不成立,不更新
遍历结束,输出的smallest为1,就是整个集合的最小值
内容的提问来源于stack exchange,提问作者Brotzi
相关产品推荐
相关产品推荐

