Java培训学习笔记- 循环、数组、方法

目录

目录

目录

1.随机数的生成:

1.1Math.random() 

1.2 import Java.util.Random(java的util包)

2.循环 

2.1 for 循环

//打印50-100的因数

//打印0-1000的完数

2.2while循环---当型循环

//猫捉老鼠

2.3do-while循环---直到型循环

2.4.逻辑控制语句(补充)

break:

continue:

3.代码实例

 3.1打印0-100的质数

3.2判断arr中有没有偶数

3.3求非偶数元素的和

4.方法

4.1 定义

4.2 Java静态方法调用非静态方法 static方法内部是否能调用非static方法?

扩展:

4.3返回一个数组的所有的偶数

4.5 冒泡排序

4.6插入排序


1.随机数的生成:

1.1Math.random() 

随机生成的是double类型数,取值范围位[ 0,1)

int  [] arr=new int [10];//数组声明

for(int i=0;i<arr.length;i++){     

arr[i]=(int)(Math.random()*100);  // 生成0-100的随机数

System.out.println(Arrays.toString(arr));//Arrays包 打印数组

}

Math类random返回值为double. 取值范围为[0,1),将Math.random()*100得到左闭右开的int 类型

需要进行强制转换,注意是是整体转换为int

扩展:随机生成25~80之间的随机数    //25+[0,1)*55

即    (int)(Math.random()*55)+25

1.2 import Java.util.Random(java的util包)

2.循环 

2.1 for 循环

for(计数器;判断循环条件;计数器的调整   ){循环体}

//打印50-100的因数

//打印50-100的所有数的因数
public class Dkk {
	
   public static void main(String[] args) {
	 //打印50-100的所有数的因数
	   
	   for (int j = 50; j < 100; j++) {
		
	   for(int i=1;i<j;i++){ //注意i从1开始 ,0不能作为除数
	       if(j%i==0){
	       System.out.println(i+"是"+j+"的因素");
	        }
         }
       } 
   }
}

//打印0-1000的完数

public class Dkk {
	
   public static void main(String[] args) {
	 //打印0-1000的完数 
	   for (int i = 0; i < 1000; i++) {
	   int sum=0;
	   for (int j = 1; j < i; j++) {   //注意 0不能作为分母
		if (i%j==0) {
			sum+=j;
		}
	}
	   if (i==sum) {
		System.out.println(i+"是完数");
	}//else {
		//System.out.println(i+"不是完数");
	//}
   }	
   }
}

2.2while循环---当型循环

特点:循环次数未知

while循环的执行过程:首先判断条件是否为真,条件为真则执行语句,否则跳出循环.

//猫捉老鼠

package com.partise2;

public class Dkk {
	
   public static void main(String[] args) {
	    //猫捉耗子
	   int weight=1,num=0;
	   int mouse=(int)(Math.random()*10)+1;//mouse 重量1~10;
	  while(weight<=100){
	       weight += mouse;
	       num++;
	 }
	 System.out.println("猫捉了"+num+"只耗子");
   }
}

2.3do-while循环---直到型循环

特点:循环次数未知,且至少执行一次

do-while 循环语句的特点是先执行循环体,然后判断循环条件是否成立,

do{

//循环体

}while(循环条件);

2.4.逻辑控制语句(补充)

break:

跳出循环(结束循环),执行下面的语句。

continue:

跳出本次循环,继续执行下次循环

3.代码实例

 3.1打印0-100的质数

  public static void main(String[] args) {

	 //打印0-100的质数
	   for (int i = 2; i <100 ; i++) {
		   boolean flag=false;// false代表是质数
		   for (int j =2 ; j < i; j++) {
			if (i%j==0) {
				flag=true;//这个数不是质数
				
			 }
		    }
		   if(flag) {
			   System.out.println(i+"是质数");
		   }
		   


3.2判断arr中有没有偶数

分析:数组中偶数个数未知,要对每一个数组判断 使用for循环

public class Dkk {
	
   public static void main(String[] args) {

	 int [] arr=new int [6];
	 boolean bool=false; // 是否有偶数 返回一个结果
	 for (int i = 0; i < arr.length; i++) {
		 arr[i]=(int)(Math.random()*100);	
	}
	 System.out.println(Arrays.toString(arr));
	
	 for (int j = 0; j < arr.length; j++) {
		if(arr[j]%2==0) {
			bool=true;
			break;
		} 	
	}
	 System.out.println(bool);
   }
}

3.3求非偶数元素的和

合理利用continue

  int arr []=new int[7];
	    int sum=0;
   	   for (int i = 0; i < arr.length; i++) {
		arr[i]=(int)(Math.random()*100);
	    }
   	   System.out.println(Arrays.toString(arr));
   	   for (int i = 1; i < arr.length; i++) {
   		   if (arr[i]%2==0) {
			continue;//跳出当前循环  执行下一次
		}
   		   sum+=arr[i];
   	   }
   	   System.out.println(sum);
	}
	   
	   

4.方法

4.1 定义

1、方法是具有独立代码功能的代码块组织组成的整体,使其具有特殊功能的代码集

2、注意:方法必须先创建在使用,称为方法定义,方法创建后不是直接运行

3、 返回值类型 方法名(参数){

         方法体

       }   

4、方法的返回值类型必须和定义的相同,实参的个数和类型必须和形参对应

5、方法的调用必须在可执行的代码块中

6、需要一个变量指向与方法的结果


  // return  一个代码块中 return是最后一行代码

 

4.2 Java静态方法调用非静态方法 static方法内部是否能调用非static方法?

不可以,static方法是静态方法,是属于类的方法,非static方法是属于对象的方法。非static方法是要和对象关联在一起的,必须在创建一个对象后,才能通过这个对象调用非static方法,而static方法可以直接通过类名来调用,不需要创建对象。

(人类有人类的属性)---人类可以改变地球

(人有人的属性)-----人可以改变生活--需要一个具体的对象

扩展:

static 表示"全局"或"静态"的意思,用来修饰成员变量和成员方法,也可以修饰静态static代码块。

static修饰的变量习惯称为静态变量,static修饰的方法称为静态方法,static修饰的代码块叫做静态代码块。

4.3返回一个数组的所有的偶数

public class Dkk {
	
   public static void main(String[] args) {

	int arr [] = {10,13,13,14,13};
	int arr1 []=shuzu(arr);//将数组传入方法,直接将数组名写入括号
	System.out.println(Arrays.toString(arr1));
}
  static int [] shuzu(int arr[]) {//不确定一个数组中偶数的个数 ,需要一个个判断
	  int arr1 []=new int [arr.length];//找一个容器存放新的数组
	  int index=0;
	  for (int i = 0; i < arr.length; i++) {
		if (arr[i]%2==0) {
			//arr1[i]=arr[i];//这样写会有空缺  
		    //新建一个计数器 记录新数组的下标位置
			arr1[index]=arr[i];
			index++;
		}
		}
	  return arr1;//这里是返回数组,不是arr1[]
	}
 }

4.5 冒泡排序

    //冒泡排序
	int arr []= {1,2,3,4,5,6,7,8};//特殊情况 正序的数组
	int temp=0;
	boolean bool;
	for (int i = 0; i < arr.length-1; i++) {
		//i 确定元素的个数
		bool=false;//没有发生交换
	  for (int j = 0; j < arr.length-i-1; j++) {//循环一次找出最大值
		if (arr[j]>arr[j+1]) {
			temp=arr[j];
			arr[j]=arr[j+1];
			arr[j+1]=temp;
			bool=true;//进入if表示有交换 
		}
	//System.out.println(Arrays.toString(arr));
      }		
	  System.out.println(Arrays.toString(arr));
	  if(!bool) {
		  System.out.println("已经排好了");
		  break;
    }
   }
	System.out.println(Arrays.toString(arr));
   }
}

4.6插入排序

4.7去重

 static int[] norepeat(int arr[]) {
	   int arr1 [] =new int [arr.length];
	   int index=0;
	   boolean bool=false;
	   for (int i = 0; i < arr.length; i++) {
		   bool=false;
		   //i表示当前元素
		   for (int j = i+1; j < arr.length; j++) {
			   if(arr[i]==arr[j]) {
				   bool=true;//找到相同的 就结束
				   break;
				}
		}
		if (!bool) {//没有相同
			arr1[index]=arr[i];
					index++;  
		}   
		System.out.println(Arrays.toString(arr1));
	}
	   return arr1;
   }

4.8补充:跳出多重循环

break out ;跳出多层循环

类似于和变量取名字,循环内部 break out;跳出多层循环

跳出多层循环

out for(;;){                //break 跳出所在的循环

for(int i0;i<10;i++){   //如果想跳出外层循环 

if(i==6){                              //给break加标记

break out;

           }

      }

}
 


        


 

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值