栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Day3 Java学习之循环练习体会及优化思想

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Day3 Java学习之循环练习体会及优化思想

一、代码优化案例一:                 需求:

                        编程实现在控制台打印出1~100内能被4整除的数,并求和输出结果!!

                这是一般未优化的代码如下:为优化的代码可能存在重复无用循环,及优化后可省略的if判断语句减少程序运行时间              

public class Demo2{
	public static void main(String[] args){
		
		 
		 //分析:首先定义一个变量
		 int sum = 0;//用来保存求和输出的结果
		 
		 //使用for循环遍历1~100之间的数
		 for(int i = 1;i<=100;i++){//从1开始到100结束
			if(i%4==0){
			sum = i+sum;//将能被4整除的数sum累加
                }
			
		 }
		 //把最后的结果输出打印
		 System.out.println("被4整除的数之和为:"+sum);
	}
}

        这是优化后的代码: 

public class Demo2{
	public static void main(String[] args){
		
		 
		 //分析:首先定义一个变量
		 int sum = 0;//用来保存求和输出的结果
		 
		 //使用for循环遍历1~100之间的数
		 for(int i = 4;i<=100;i+=4){//从4开始到100结束
			//2.1优化版:循环初始值从4开始,每次循环都让他加4,
            // 那么数字一定会是4的整数倍,因此判断都省略了	 
			sum = i+sum;//将能被4整除的数sum累加
			
		 }
		 //把最后的结果输出打印
		 System.out.println("被4整除的数之和为:"+sum);
	}
}
代码优化的后:很明显优化后的代码把一般代码少了很多次循环且省略的判断语句,可以高了程序执行速度,使代码变的简洁可读性更强。

二、程序可行性案例二:                 需求:

                              给定两个整数,被除数和除数(都是正数,且不超过int的取值范围),不使用乘除法和%运算符得到商和余数。

                        未考虑到特殊情况的一般代码:这种程序容易出现bug,可能输入某个值时导致程序奔溃或者死循环或导致无意义的输出,如下代码就没有考虑到 除数不能为0的情况

import java.util.Scanner;


public class Demo6{
	public static void main(String[] args){
		
		//首先应用减法,将两数相减一直等到a>b为假时条件结束
		//定义两个变量个,一个为商,一个余数
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入被除数");
		int a = sc.nextInt();//被除数
		System.out.println("请输入除数");
		int b = sc.nextInt();//除数
		
		int c = 0;//余数
		int count = 0;//商
		while(a>b){
			a=a-b;
			if(a 

进行优化后的代码:减少了程序可能导致的bug,增强程序的健壮性。

import java.util.Scanner;


public class Demo6{
	public static void main(String[] args){
		
		//首先应用减法,将两数相减一直等到a>b为假时条件结束
		//定义两个变量个,一个为商,一个余数
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入被除数");
		int a = sc.nextInt();//被除数
		System.out.println("请输入除数");
		int b = sc.nextInt();//除数
		
		int c = 0;//余数
		int count = 0;//商
		
		if(a!=0&&b!=0){		
		while(a>b){
			a=a-b;
			if(a 
三、代码优化 
  • 概述:  

                在不改变程序运行效果的前提下,对被编译的程序进行等价变换,使之能生成更加高效目标代码

  • 途径:                

1) 改进算法; 

2) 在源程序级上等价变换;

3) 充分利用系统提供的程序库; 

4) 编译时优化等。 

  • 优化的目的:

                产生高效的目标代码。

  • 为什么要实施优化?

        1、优化程度是编译器的一个重要技术、质量目标;

        2、无法苛求用户对源语言的掌握,编程技巧.编写源程序的优化;

        3、编译程序固有的缺陷:不是面对一个或一类具体问题的程序,而是统一处理该语言的各种源程序,无法尽善尽美

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/998561.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号