为了账号安全,请及时绑定邮箱和手机立即绑定

用的while,相对于if哪个好?

public class HelloWorld {
    
    public static void main(String[] args) {
        
		// 定义一个整型数组,并赋初值
		int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 };
        
		int max = nums[0]; // 假定最大值为数组中的第一个元素
		int min = nums[0]; // 假定最小值为数组中的第一个元素
		double sum = 0;// 累加值
		double avg = 0;// 平均值
        
		for (int i = 0; i < nums.length; i++) { // 循环遍历数组中的元素
        // 如果当前值大于max,则替换max的值
		while(nums[i]>max){
    	 max=nums[i];   
		}
        // 如果当前值小于min,则替换min的值
        while(nums[i]<min){
        min=nums[i];
        }
        
        
        // 累加求和
        sum=sum+nums[i];
        
		}
        
        // 求平均值
       avg=sum/nums.length;
        
		System.out.println("数组中的最大值:" + max);
		System.out.println("数组中的最小值:" + min);
		System.out.println("数组中的平均值:" + avg);
	}
}


正在回答

4 回答

进入for循环之后,如果直接用if语句:

if(nums[i]>max){

        max=nums[i];   

}

运行到这里的时候,直接跳入下一段代码。

而采用你的while语句

 while(nums[i]>max){

         max=nums[i];   

        }

运行完一遍,会回去再做一次while条件判断。

其实外面有了for语句来遍历,这里再回去做判断没有必要,多消耗了性能。


1 回复 有任何疑惑可以回复我~

这个代码应该不存在while相比if哪个好还是不好,把while循环放到内循环没有意义呀。假设你断点,外循环for走第一圈是nums[0] = 61这个值进入内循环while里面,只有一个值和max对比,使用if就可以了,没有多个值需要循环做对比,所以这里加入内循环有点突兀,我感觉还影响性能,尽管这只是个Demo

0 回复 有任何疑惑可以回复我~

你这是一个死循环

0 回复 有任何疑惑可以回复我~

for是一个循环,while也是进行循环判断的,不过while这样用不会报错吗?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165248    人
  • 解答问题       17581    个

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

进入课程

用的while,相对于if哪个好?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信