再说今天的主要内容之前,先说一下break和continue这两个在循环中作用.
一.break和continue在循环中的作用
总的来说,break和continue这两个在循环中的作用都是跳出循环,只是结果不一样,接下来分别说说两个在循环中作用的结果.
1.break在循环中的作用 – 结束当前循环并跳出循环
如果说你用break来结束循环的话,那么你这整个循环都不会被执行,会直接跳出循环.需要注意的是用break跳出循环的话,在break后面写任何代码都不会执行,会变得没有意义,所以会报错.
2.continue在循环中的作用 – 结束本次循环进入下一次循环
如果说你用break来结束循环的话,你这次的循环会被立即结束并开始下一次循环.
3.嵌套for循环中,break和continue 的作用是什么?(都只操作本层循环)
break和continue也会出现在for循环的嵌套当中,那么它们的作用是什么呢?接下来就一一来说下:
break在嵌套中的作用: 结束(跳出)当前(本层)的循环;
continue在嵌套中的作用: 跳过本次循环继续执行下一次循环.
4.下面举两个例子来更清楚的认识break和continue的区别
a.打印几行几列的某几个数字
for (int i = 0; i < 10; i++) { //定义行
for (int j = 0; j < 10; j++) { //定义列
if (j == 2) { //定义打印前几个数字
break; //打印完数字直接结束循环
}
System.out.print(j);//输出数字
}
System.out.println("~~~~~~");//输出符号
}
b.班级11个人,跟每个人打招呼.讨厌的人不打招呼. 我分别讨厌3 5 9号
for (int i = 1; i <= 11; i++) { //定义班级人数
if( i == 3 || i == 5 || i==9) { // 定义讨厌的人
continue; //定义如果遇到讨厌的人跳过继续执行循环
}
System.out.println( i + "号" + "早上好");//输出结果
}
以上就是break和continue在循环中的作用,下面进入今天的正题随机数、函数及部分数组了.
二.随机数
1.随机数的定义
既然字面意思说的这么清楚—随机数,就很简单明了的理解了随机数的概念了,随机数是数字是随机产生的,不过是随机在[0,1)之间产生小数.
2.随机数的计算公式
既然知道了随机数的定义,那么问题就来了.平常打代码一半不可能只打[0,1)之间的小数,那么我们如何打出别的随机数呢?其实计算随机数是有一个公式的– 类 * (最大值 - 最小值 + 1) + 最小值.看上去很难理解,下面举个例子说明一下:
a.需求 : 随机 [55,300] 的随机整数
int number = (int)(Math.random() * (300 - 55 + 1) + 55); //随机数计算公式
System.out.println(number);//输出随机数
b.随机[15,200]的10个整数并找出最大值
这个题目就需要联系以前说过的循环和比较了
int max= 0;// 定义夜歌最大值
for ( int i = 0; i < 10; i++) { // 获得10个随机数
int number = (int)(Math.random() * (200 - 15 + 1) + 15);// 随机数公式
System.out.println(number);//输出随机数
if ( max < number ) {
max = number;//随机数和最大值比较,如果随机数大于最大值,则将随机数赋给最大值,循环10次即可找出最大值
}
}
System.out.println("max = " + max);//输出最大值
三.函数
日常的代码编辑中,有些复杂的代码需要多次使用,那么就可以使用函数减少代码的编写量,方便程序员的编写.接下来就说说函数.
1.什么是函数?
简答的来说,函数就是封装了特定功能的一个代码块.
2.函数的优点
前面也已经说过了,函数的优点就是方便使用,提高了写代码的效力,减少了大量重复代码的编写.
3.函数的结构
关键字 函数返回值类型 函数名(参数类型 参数1,参数类型 参数2,…){
函数中的语句;
return返回值;
}
4.函数的书写位置:
注意:一定要写在类中(只有类中才可以写函数)
还有需要注意的是函数中是不能再定义函数的,这个需要牢记.
那么下面举几个个例子:
a.需求:编写一个求两个数和的函数
public static int sum(int a,int b) {
int rel = a + b;
return rel;
}
在类中编写这段代码,然后在main函数中输出就好了
int rel = sum(183, 256);
System.out.println(rel);
b.需求:编写一个 可以打印x行y列的矩形的函数
public static void printR(int x,int y) {
for (int i = 0; i < x; i++) {
for (int j = 0; j < y ; j++) {
System.out.print("* ");
}
System.out.println();
}
}
同样的,在main函数中输出
printR(i, j);
5.函数的分类:
a.有参数 有返回值
b.有参数 没返回值
c.没参数 又返回值
d.没参数 没返回值
需要注意的是
注意:函数写不写返回值是根据你的需求
如果调用完函数,你要对返回的结果进行操作的话,可以使用带返回值的函数;
如果仅仅是打印结果,那么可以写不带返回值的参数.
6.函数编写的步骤:(重点)
a.确定编写的函数有没有返回值 有返回值的话 返回值的类型是什么
b.确定编写的函数有没有参数 有参数的话 确定有几个参数
下面说一个比较重要的点–函数的重载
7.函数的重载:(参数名相同 但参数不同)
把相同的功能 但是参数和内部的实现不同的函数,起相同的名字,是函数的重载(前提:相同的功能)
注意:函数是不是重载,只跟函数的参数有关(和参数的个数 参数的类型 参数的顺序有关 切记和参数名无关 和返回值无关);
关于重载举一个例子:
需求:
1.计算两个数的最大值
2.计算三个数的最大值
3.计算四个数的最大值
4.计算五个数的最大值
//计算两个数的最大值
public static int compare(int a , int b) {
return(a > b) ? a : b;
}
//计算三个数的最大值
public static int compare(int a , int b , int c) {
int max1 = compare(a , b);
return (max1 > c) ? max1 : c;
}
//计算四个数的最大值
public static int compare(int a , int b , int c , int d) {
int max2 = compare(a , b , c);
return (max2 > d) ? max2 : d;
}
//计算五个数的最大值
public static int compare(int a , int b , int c , int d , int e) {
int max3 = compare(a , b , c , d);
return (max3 > e) ? max3 : e;
}
public static void main(String[] args) {
int rel = compare(a, b, c, d, e);
System.out.println(rel);
}
上面的例子很好的说明了函数的重载并在main函数中输出.
四.数组及数组的遍历
1.数组的定义: 数组相当于一个容器 存放了一组相同类型的数据
2.数组存放的规则: 是以下标(角标)俩存放的 并且下标从0开始
3.数组声明的规范:(存放数据的)数据类型[] 数组名 = 初值
这个数据类型指的是数组中存放的数据的类型
例如:int[] array = new int[5];
这个是一种声明了一个长度为5的整型数组的方法;
int[] array= new int[]{1,3,5,7,9};
这是第二种声明方法–语法糖,这个可以直接声明出数组中保存的值;
array[3] = 10;
这个是存入数组,将数组中第四个存入数字10;
System.out.println(array[3]);
这个是读取数组,读取数组中第4个数据.
4.遍历数组
遍历数组的定义其实就是打印数组中所有的值.
举个遍历数组的例子:
首先知道两个语句的意思:
array.length–> 代表数组的长度
Arrays.toString(array) –> 将数组转化成字符串来输出
下面题目就来了.
]需求: 随机10个数 随机的区间为[15-150]
1.把这十个数放入数组中; 2.打印最大值
int[] array = new int[10];// 定义一个数组
for (int i = 0; i < 10; i++) { // 获得10个随机数
int number = (int)(Math.random() * (150 - 15 + 1) + 15);//获得随机数
array[i] = number;// 把数据放入数组对应得位置
}
System.out.println(Arrays.toString(array));//打印数组
// 遍历数组 寻找最大值
int max = 0;//定义一个最大值
for (int i = 0; i < array.length; i++) {
if(max < array[i]) { //比较两个数的大小
max = array[i]; //赋最大值给max
}
}
System.out.println("max = " + max); //输出最大值
其实总的来说,只要是数组方面的问题,都离不来遍历数组.