重新认识Java(4)————小算法的练习和方法数组的引入

1.循环嵌套语句
    for(){
        for(){
            
        }
    }

eg:打出一个直角三角形 和一个倒着的等腰三角形

public class Test01 {
	public static void main(String[] args) {
		for (int i = 1; i < 10; i++) {
			for (int j = 1; j < i; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
		
		for (int i = 10; i >  0; i--) {
			for (int j = i; j < 10; j++) {
				System.out.print(" ");
			}
			for (int j = 1; j <= i; j++) {
				System.out.print("* ");
			}
			System.out.println();
		}
		
	}
	
	
	
}

eg:打印出来一个九九乘法表

public class Test02 {
	public static void main(String[] args) {
		for (int i = 1; i < 10; i++) {
		
			for (int j = 1; j <= i; j++) {
//				if(j*i<10){
//					System.out.print(j+"*"+i+"="+(j*i)+"  ");
//				}else {
//					System.out.print(j+"*"+i+"="+(j*i)+" ");
//				}
				System.out.print(j+"*"+i+"="+(j*i)+(((j*i))<10?"  ":" "));
			}
			System.out.println();
		}
	}
}

eg:找出素数(质数)的小程序

public class Test03 {
	public static void main(String[] args) {
		
		for (int i = 2; i < 51; i++) {
			boolean k = true;
			for (int j = 2; j < i; j++) {
				if(i%j==0){
					k = false;
				}
			}
			if(k){
				System.out.println(i);
			}
		}
		
	}
}

eg:使有序序列,倒叙

public class Test06 {
	public static void main(String[] args) {
		int[] arr = {1,2,3,4,5};
		for (int i = 0; i < arr.length/2; i++) {
			int temp = arr[i];
			arr[i] = arr[arr.length-i-1];
			arr[arr.length-i-1] = temp ; 
		}
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]+",");
		}
		Scanner in = new Scanner(System.in);
	}
	public static void swap(int[] arr ,int  a ,int  b){
		
	}
}

eg:

public class Demo06 {

	//需求:计算圆形面积   3.14  半径(整数)
	public static  double  getCircle(int r){ //r = 10
//		double area = 3.14*r*r;
//		return  area;
		return 3.14*r*r;
	}
	
	//需求:计算长方形周长  长和宽(整数)
	public static  int  getLength(int a, int b){
		return  (a+b)*2;
	}
	
	
	public static void main(String[] args) {
//		double area = getCircle(10);
//		System.out.println(area);
		
//		System.out.println(getCircle(10));
		
//		int length = getLength(10, 5);
//		int length1 = getLength(20, 10); //调用方法,并将方法运算后的结果存储到length1变量中
//		System.out.println(length1);
		
		int max = getMax(15,6);
		System.out.println(max);
	}
	
	//需求:比较两个整数的大小,返回较大的数
	public static  int  getMax(int a, int b){  
		/*if(a > b){
			return a;
		}else{
			return b;
		}*/
		/*if(a > b){
			return a;
		}
		return b;*/
		//  boolean类型表达式?表达式1:表达式2;
//		int max = (a > b)?a:b;
//		return max;
		return  (a>b)?a:b;
	}
	
	
	//需求:比较两个整数,是否相等
	public static  boolean  equals(int a , int b){
		/*if(a == b){
			return true;
		}else{
			return false;
		}*/
		/*if(a == b)
			return true;
		return false;*/
//		return (a == b)?true:false;
		return a == b;
		
	}
}


2.其他流程语句:
    1.break;
        能用在switch语句和循环语句中。
        代表的意思是:结束。
        如果循环嵌套语句,那么break结束的是它所在的循环。
    2.continue;
        只能用在循环语句。
        代表的意思是:结束当前此次正在进行中的循环,继续下一次循环。
3.函数:
    也称为方法,一段完成特定功能的独立的代码块,定义在类中。
    作用:提高代码的复用性。
    格式:
        修饰符    返回值类型     方法名(参数类型  参数名1,参数类型  参数名2,....){  //参数列表的个数>=0
            执行语句;...
            return  返回值;
        }
        修饰符: public static 或者 static
        返回值类型:
                1.方法体运算后所产生的数据对应的数据类型
                2.void,可以省略return关键字
                
        (...)参数列表:
                简单记就是变量的声明
        return:
            1.将方法体运算的结果返回给方法的调用者
            2.方法结束的标志

    5片:
    寄存器,本地方法区,方法区,栈内存,堆内存
    
    方法重载:
        为什么有方法重载?
        因为:在一个类中,可能会去编写功能相似的方法,但是都需要起不同的方法名,记忆很痛苦。
        在一个类中,功能相似的方法,允许同名的方法存在,但是参数列表不同,与返回值类型无关。
        参数列表不同:
            类型不同,个数不同,顺序不同
            
4.数组
    概念:
        相当于容器,用于存储相同类型的一组数据。
    特点:
        1.长度固定
        2.每一个元素都有下标(角标),从0开始
        3.元素类型可以是基本类型,也可以是引用类型
    声明语法格式:
        动态声明:
        元素类型[]  数组名  = new 元素类型[长度];
        元素类型  数组名[]  = new 元素类型[长度];
        eg: int[] arr = new int[3]; 
            创建一个数组,数组名为arr,数组能存放3个int类型的数据.
            arr是引用类型;
            
            arr[0]  = 100;  //赋值操作
        静态声明:
        元素类型[]  数组名  = new 元素类型[]{元素1,元素2,.....};    
        简写格式:元素类型[]  数组名  = {元素1,元素2,.....};
    数组属性:
        数组名.length  :获取数组的长度
        数组名.length-1 : 获取数组下标的最大值
            
    基本操作:    
        遍历,求和,求平均值.    

public class Demo08 {
	public static void main(String[] args) {
		//声明数组
		String[] arr = new String[3];
		//元素赋值
		arr[0] = "hello";
		
		int[] arr1 = new int[3];
		arr1[0] = 20;
		
		int[] arr2 = {1,2,3,4,5};
//		arr2[arr2.length-1] =  100; //将数组最后一个元素更改为100
		
		//获取数组元素
//		System.out.println(arr2[3]);
		
		//遍历数组中元素,求和,求平均值
		int sum = 0;
		for(int i = 0 ; i < arr2.length; i++ ){
			System.out.println(arr2[i]);
			sum += arr2[i];
		}
		System.out.println("sum = " + sum);
		System.out.println("avg = " + (sum/arr2.length));
		
		
		//int[] arr = {1,2,3,4,5};
		//int[] arr = {1,3,4,6,7,8,9};
	}
}


        

猜你喜欢

转载自blog.csdn.net/m0_37729047/article/details/81254481