Java流程控制语句
循环流程控制语句
重复性的执行一段相同的代码
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
初始化语句:
一条或者多条语句,这些语句完成一些初始化操作。
判断条件语句:
这是一个boolean 表达式,这个表达式循环体。能决定是否执行
循环体语句:
这个部分是循环体语句,也就是我们要多次做的事情。
控制条件语句:
这个部分在一次循环体语句结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。
按照语法划分分为三种
1、While
while循环语句格式:
基本格式
while(判断条件语句) {
循环体语句;
}
//while循环
//语法:while(布尔表达式){循环体语句}
//if(布尔表达式){语句块}
//当使用while进行循环操作时一般使用拓展语法
//1、初始化语句
int i=1;
//2、循环执行条件判断语句
//只有返回true才会执行循环体语句
while(i<=5){
//3、循环体语句
System.out.println("hello World!");
//4、迭代语句
//用于在每次循环结束后修改循环条件中的变量
i=i+1;//i++
}
2、do…while
do…while循环语句格式:
基本格式
do {
循环体语句;
}while(判断条件语句);
3、For
for循环语句格式:
for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
}
For循环语法集初始化语句、条件判断语句、迭代语句、循环语句与语法本身
循环中初始化语句只会执行一次
while、do…while、for循环的区别
While与do…while区别:while先进行判断操作后进行循环体语句的执行,do…while先进行循环体语句的执行后再进行条件的判断(while循环的循环体语句可能一次都不会执行,但是do…while循环体语句至少被执行一次)
**While与for的区别:**for语法将初始化语句集成,使其作用范围在当前循环中,在循环结束后释放资源,且将迭代语句一同放入语法中使{}中只保留循环体语句减少代码的混淆
While与do…while使用场景:
当需要进行条件判断后才会执行的语句时使用while,当进行无论条件是否成功都会首先执行一次的操作时使用do…while
While与for使用场景:
for循环适合针对一个范围判断进行操作,对于已知次数的循环(输出10次固定语句)
while循环适合判断次数不明确操作,未知次数的循环(检票)
// 使用for循环计算当前已过天数
Scanner sc = new Scanner(System.in);
System.out.println("请输入年");
int year = sc.nextInt();
System.out.println("请输入月");
int month = sc.nextInt();
System.out.println("请输入日");
int day = sc.nextInt();
int sumDay=0;//已过天数
int TwoMonthDay=28;//二月天数
if((year%4==0&&year%100!=0)||year%400==0){
TwoMonthDay=29;}
for(int i=1;i<month;i++){
int monthDay=0;
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){
monthDay=31;
}else if(i==2){
monthDay=TwoMonthDay;
}else{
monthDay=30;
}
sumDay+=monthDay;
}
sumDay+=day;
System.out.println(sumDay);
输出1000以内的水仙花数
//输出1000以内的水仙花数
//水仙花数 各位3次方之和为本身的数
//1、获取当前三位数各位数字123
//(1)获取百位 对100取整
//(2)获取十位 先对100取余在对10取整(先对10取整再对10取余)
//(3)获取个位 先对100取余在对10取余(对10取余)
for(int i=100;i<1000;i++){
int hundredsPlace=i/100;//百位
int tenPlace=i/10%10;//十位
int onePlace=i%10;//个位
if(hundredsPlace*hundredsPlace*hundredsPlace+tenPlace*tenPlace*tenPlace+onePlace*onePlace*onePlace==i){
System.out.println(i);
}
}
Java流程跳转语句
在java流程控制语句执行的过程中动态的对流程进行控制跳转的关键字
break:结束当前循环
// break
// 结束当前循环
// 在循环输出100~999的过程中要求如果出现水仙花数
// 则用水仙花数✿替换并结束循环
for (int i = 100; i < 1000; i++) {
int hundredsPlace = i / 100;// 百位
int tenPlace = i / 10 % 10;// 十位
int onePlace = i % 10;// 个位
if (hundredsPlace * hundredsPlace * hundredsPlace + tenPlace * tenPlace * tenPlace
+ onePlace * onePlace * onePlace == i) {
System.out.println("✿");
break;
} else {
System.out.println(i);
}
}
continue:跳过本次循环进入下次循环
//continue跳过本次循环进入下次循环
//输出1~100内的1~50
int cCount=0;//保存continue执行次数
for(int i=1;i<=100;i++){
if(i==50){
cCount++;
continue;
}
System.out.print(i);
}
System.out.println();
System.out.println(cCount);
int bCount=0;//保存break执行次数
for(int i=1;i<=100;i++){
if(i==50){
bCount++;
break;
}
System.out.print(i);
}
System.out.println();
System.out.println(bCount);
return:结束方法返回数据
// return结束方法并返回
//return为方法级别的结束
//break return区别
//break结束当前代码块 后续代码会继续运行
//return结束当前方法 后续代码不会运行
for (int i = 1; i <= 100; i++) {
System.out.print(i);
if (i == 50) {
return;
}
}
System.out.println();
System.out.println("~~~~~~~~~~~~~~~~~");
for (int i = 1; i <= 100; i++) {
System.out.print(i);
if (i == 50) {
break;
}
}
1、猜拳游戏五局三胜
2、使用for循环计算当年剩余天数
3、打印三角形