一.Math.random
1.Math是一个数学类
2.不需要导包,因为java.lang下的内容,不需要导包
Math.random()-->产生随机小数 [0.0,1.0)
公式: Math.random()*(max-min+1)+min
3.总结公式:
1)产生随机的整数:
范围为[min,max]时:
(int)(Math.random()*(max-min+1)+min)
范围为[min,max)时:
(int)(Math.random()*(max-min)+min)
public class Demo01{
public static void main(String[] args){
double d=Math.random();
System.out.println(d);
System.out.println((int)'a');
System.out.println((int)'z');
/*
随机生成26个小写英文字母,判断是否为元音 a e i o u
分析:
1.随机生成[97,122] 随机数
2.随机数转为字符
3.判断 if swtich
*/
//1.随机生成[97,122] 随机数
int num=(int)(Math.random()*(122-97+1)+97);
//2.随机数转为字符
char ch=(char)num;
//3.判段 使用case穿透
switch(ch){
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
System.out.println(ch+"是元音");
break;
default:
System.out.println(ch+"不是元音");
break;
}
}
}
二.while循环
1.while循环
1)结构:
条件初始化;
while(判断条件){
循环体语句;
条件变化;
}
判断条件是一个值为boolean类型的表达式
2.for循环和while循环的区别:
for: 次数循环 能确定变量的区间
while:条件循环
3. do...while循环
条件初始化;
do{
循环体语句;
条件变化;
}while(判断条件);
*无论是否满足条件,循环都至少执行一遍*
四.break&continue
1.break和continue;
break:
作用: 结束 停止 终止
应用场景:switch 语句 和 循环语句中
continue:
作用: 结束本次循环,直接进入到下一次循环
应用场景:只能用在循环中
public class Demo04{
public static void main(String[] args){
//打印1~100之间前5个能被3整除的数
int count=0;//计数器,从0开始计数
for(int i=1;i<=100;i++){
if(i%3==0){
System.out.println(i);
count++; //计数器累加
if(count==5){
break;
}
}
}
//打印1~10之间的数,遇到3或者3的倍数就跳过
for(int i=1;i<=10;i++){
if(i%3==0){
continue;
}
System.out.println(i);
}
int i=0;
while(true){
if(i==5){
break;
}
i++;
}
}
五.循环嵌套
1.循环嵌套
for(条件初始化;条件判断;条件变化){
//代码
for(条件初始化;条件判断;条件变化){
//代码
}
//代码
}
*外层循环每执行一次,内层循环执行一轮*
一般: 外层循环和内容循环存在2个变量,一般使这两个变量与案例中的两个有规律的可变的值相对应
public class Demo05{
public static void main(String[] args){
/*
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
*/
/*
int count=0; //计数器
for(int i=1;i<=25;i++){
System.out.print("* ");
count++;
if(count==5){
System.out.println();
count=0;
}
}
*/
//外层循环i控制行,内层j循环控制列
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
System.out.print("* ");
}
System.out.println(); //换行
}
/*
* * * * *
* *
* *
* *
* * * * *
*/
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(); //换行
}
/*
* * * * * * *
* * * * * * *
* * * * * * *
* * * * * * *
* * * * * * *
*/
for(int i=1;i<=5;i++){
for(int j=1;j<=7;j++){
System.out.print("* ");
}
System.out.println(); //换行
}
/*
* * * * * * *
* *
* *
* *
* * * * * * *
*/
for(int i=1;i<=5;i++){
for(int j=1;j<=7;j++){
if(i==1 || i==5 || j==1 || j==7){
System.out.print("* ");
}else{
System.out.print(" ");
}
}
System.out.println(); //换行
}
/*
*
* *
* * *
* * * *
* * * * *
*/
for(int i=1;i<=5;i++){
for(int j=1;j<=i;j++){
System.out.print("* ");
}
System.out.println(); //换行
}
/*
*
* *
* *
* *
* * * * *
*/
for(int i=1;i<=5;i++){
for(int j=1;j<=i;j++){
if(i==5 || j==1 || j==i){
System.out.print("* ");
}else{
System.out.print(" ");
}
}
System.out.println(); //换行
}
//九九乘法表 i控制行 j控制列 掌握
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println(); //换行
}
}
}
六.方法
1. 作用:解决功能的代码
2. 注意:
1)类中方法外定义方法,方法不能嵌套
2)方法不调用不执行
3)语法:
a.有返回值类型的方法
修饰符 返回值类型 方法名([参数列表]){
方法体语句;
return 返回值;
}
说明:
修饰符:访问权限修饰符 public static
返回值类型: 方法运行完毕之后,结果的数据类型
基本数据类型|引用数据类型
方法名:方法的调用需要通过方法名调用
严格遵循修饰符的命名规则|规范
() -->参数列表,可以是0~多个参数
参数:在方法运行过程中,有没有存在不能确定的值,未知的变量,如果有定义方法的参数
方法的参数相当于局部变量
参数列表: 数据类型 参数名1,数据类型 参数名2数据类型 参数名2...
{}-->方法体语句,解决功能的具体代码
return: 返回
结束方法
带出返回值,返回给方法的调用者
b.没有返回值类型的方法
调用方法: 方法名+(); 执行方法中的代码
有返回值类型的方法中:
输出调用 System.out.println(方法名()); 执行方法中的代码+打印返回值
赋值调用 数据类型 变量名 = 方法名(); 执行方法中的代码,并将返回值赋值给变量
直接调用 方法名+(); 只能执行方法中的代码
参数:参数是一一对应的