目录
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.三是非偶数元素的和
4.方法
4.1 定义
4.2 Java非静态方法调用非静态方法 static方法内部是否可以调用非非可调static方法?
扩展:
4.返回一个数组的所有偶数
4.5冒泡排序
4.6插入排序
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 类型
需要强制转换,
扩展:随机生成25~随机数在80之间 //25 [0,1)*55
即 (int)(Math.random()*55) 25
1.2 import Java.util.Random(java的util包)
2.循环
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的完数
ublic 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+"是质数");
}
分析:数组中偶数个数未知,要对每一个数组判断 使用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);
}
}
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补充:跳出多重循环
跳出多层循环
out for(;;){ //break 跳出所在的循环
for(int i0;i<10;i++){ //如果想跳出外层循环
if(i==6){ //给break加标记
break out;
}
}
}