1.for循环:先判断后执行,并且循环次数固定
语法:for(初始化条件;判断条件;控制条件){
循环体;
}
执行流程:for循环执行流程,先执行初始化条件,再执行判断条件,如果判断条件为假就执行循环体之后的语句,如果判断条件为真,就执行循环体的语句。再执行控制条件,再执行判断条件,如果判断条件为假就执行循环体之后的语句,如果判断条件为真,就执行循环体的语句,后面重复蓝色字体部分。
注:(1)在for循环中,初始化条件只执行一次。
(2)在for循环中,小括号中的两个分号一定不能省略。
(3)在for循环中,初始化条件可以省略,如果省略必须在for结构之前声明。
(4)在for循环中,判断条件可以省略,省略后就变成死循环。
(5)在for循环中,控制条件可以省略,如果省略必须在循环体中改变初始变量的值。
eg:for(int i=1;i<=100;i++){
System.out.println("第"+i+"次:我一定要早起");
}
2.while循环:先判断后执行,并且循环次数不固定
语法: while(循环条件){
循环体;
}
eg: double saveMoney=0;
int month=0;
int money=3000;
while(saveMoney<10000000){
saveMoney=saveMoney+money;
month++;
money=money+1000;
}
System.out.println(month+"个月后存款有10000000");
3.do-while循环:(先执行再判断)先无条件执行一次循环体,再判断再执行
语法: do{
循环体;
}while(循环条件);
eg:
do{
System.out.println("考试");
System.out.println("考试是否合格?(y/n)");
choice=input.next();//给变量赋值
}while(!choice.equals("y"));
4.变量的作用域:变量声明在哪个大括号中,它的作用域就在这个大括号。
(1)变量的声明和赋值可以分开。
(2)变量可以重复赋值,如果重复赋值,后面的值把前面的值覆盖了。
变量声明:数据类型 变量名;
变量赋值:变量名=值;
5.生成一个随机数
//生成随机数Math.random()生成的是一个0到1之间的随机数
int r=(int)(Math.random());
//生成一个指定范围的随机数min-max 15-36
int r3=(int)(Math.random()*(max-min+1)+min);
6.嵌套循环:在一个循环的循环体中再嵌套另一个完整的循环结构。
(1)外层循环结构循环一次,内层循环结构循环一周。
(2)用嵌套打印图形:
a.外层循环控制行号,内层循环控制每一行打印的个数。
b.内层循环的个数用行号找规律来表示出来。
eg:
/**
* 从键盘接收一个班四名学员的成绩,并计算平均分
从键盘接收三个班各四名学员的成绩,并计算每个班的平均分
*/
public static void main(String[] args){//程序的入口方法
Scanner input=new Scanner(System.in);
for(int j=1;j<=3;j++){
double sum=0;//总分
System.out.println("请输入"+j+"个班四名学员的成绩:");
for(int i=1;i<=4;i++){
System.out.println("请输入第"+i+"个学员的成绩");
double score=input.nextDouble();
sum=sum+score;
}
System.out.println("平均分为:"+(sum/4));
}
}
7.break:
(1)用在switch结构中,跳出switch结构;
(2)用在循环结构中,跳出离他最近的一个循环结构。
eg:for(int i=1;i<=10;i++){
if(i%3==0){
break;
}
System.out.println(i);
}
(3)在循环结构中,结合break和标签来跳出指定的循环结构。标签名自己取,但是不能用Java中的关键字。
eg: out:for(int i=1;i<=10;i++){
System.out.println("i:"+i);
for(int j=1;j<=10;j++){
if(j%3==0){
break out;
}
System.out.println("j:"+j);
}
}
9.contine: 只能在循环中用,跳出离它最近的一个循环结构的当次循环,进入 下一次循环。
eg:for(int i=1;i<=10;i++){
if(i%3==0){
continue;
}
System.out.println("i:"+i);
}
10.return:结束它当前所在方法。return后面不能写代码,因为永远不会执行。
eg:for(int i=1;i<=10;i++){
if(i%3==0){
return;//结束方法
//System.out.println("你好");//无法访问的代码
}
System.out.println("i:"+i);
}