Math类
数学相关的类,不需要导包,在java.lang下的类不需要导包
可以直接通过类名.功能去使用
Math.random( )产生随机数[0,1)随机小数
double num = Math.random();
int num1 = (int)Math.random();
随机小数
[min ,max)某个范围内的随机小数 Math.random()*(max-min)+min
随机整数
[min ,max] (int)(Math.random()*(max-min+1)+min)
math.round(数据)//四舍五入
循环结构
for
for(条件初始化;条件判断;条件变化){
重复执行的代码;
}
若重复执行的代码只有一行,则前后的{}可以省略
执行流程:1.条件初始化
2.条件判断
3.不满足条件结束循环,满足条件则执行循环体语句。
4.条件变化,返回第2步(从第二次循环开始,条件初始化就不执行了)
while
条件初始化;
while(条件判断){
循环体语句;
条件变化;
}
能使用for循环的都能使用while,可以互相转换
确定循环次数|变量变化区间 ——> 推荐使用for
条件不需要我们声明,变化也不需要去管——>推荐while
死循环
for(;;)
while(true)
当进循环时候不确定一共会执行多少次,可以选择使用while…true…,在内部进行判断决定循环的结束
do…while 和while之间的区别:
do…while 无论是否满足条件都至少执行一次
习题:打印水仙花数
提示:水仙花数指一个三位整数,其个位数的立方和等于改数本身。
例如:153 = 1 * 1 * 1+5 * 5 * 5+3 * 3 * 3
for(int i = 100;i <= 999;i++){
int m = i / 100;//得到百分位m
int n = i % 100 / 10;//得到十分位n
int k = i % 100 % 10;//得到个位k
if(i == m*m*m+n*n*n+k*k*k){
System.out.println("水仙花数是"+i);
}
习题:判断平年还是闰年
闰年:能被4整除但是不能被100整除或者能被400整除
if(year % 4 == 0 && year % 100 !=0||year % 400 == 0)
break、continue之间的区别
break:
作用:结束,终止;
应用场景:switch、循环中
continue:
作用:结束本次循环,直接进入下一次循环
应用场景:循环中
双重循环
习题:打印 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZK4Iu11G-1574435346495)(/Users/dongzhenhua/Library/Application Support/typora-user-images/image-20191122200818012.png)]
//单层循环
for(int i = 1;i <= 25;i++){
System.out.print("* ");
count++;//计数器
if(count==5){//每5个换行,之后清零
Systen.out.println();
count == 0;
}
}
//双层循环
for(int i = 1;i <= 5;i++){//控制行
for(int j = 1;j <= 5;j++){//控制列
System.out.print("* ");//内层控制打印每行的*
}
System.out.println();//外层控制换行
}
习题:打印[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2gcdILfL-1574435346497)(/Users/dongzhenhua/Library/Application Support/typora-user-images/image-20191122201419376.png)]
提示:抓住特点——当是第一行/第五行/第一列/第五列时打印*,其他时打印""
for(int i = 1;i <= 5;i++){
for(int j = 1;j <= 5;j++){
if(i == 1 ||i == 5||j == 1||j == 5){
System.out.print("* ");
}else{
System.out.print(" ");
}
}
System.out.println();
习题:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R6ly9OBm-1574435346500)(/Users/dongzhenhua/Library/Application Support/typora-user-images/image-20191122203757216.png)]
for(i = 1;i <= 5;i++){
for(int j=1;j<1000;j*=10){
Systme.out.println(i*j+"\t");
}
}
习题:打印九九乘法表
for(int i = 1;i <= 9;i++){
for(int j = 1;j <= i;j++){
System.out.print(j+"*"+i+"="+j*i+"\t");//注意点:print
}
System.out.println();//注意点:不能漏这句
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SIOny1AD-1574435346502)(/Users/dongzhenhua/Library/Application Support/typora-user-images/image-20191122204645739.png)]
数组
存储数据
变量:存储单个数据
数组:存储多个数据(相同数据类型的有序集合)
数组的特点:
- 引用数据类型,容器。
- 一个数组中的多个数据的数据类型一致
- 数组的长度一旦确定不可改变
- 数组中的数据是有序的(索引|下标:自0开始,往后依次+1)
数组的声明:
数据类型 [ ] 数组名 ;——>推荐使用
数据类型 数组名[ ];