史上最全讲解:JAVA循环语句
for循环
- for循环格式:
for(条件初始化;条件判断;条件变化){
重复执行的代码;
}
条件初始化: 声明一个变量,并第一次赋值 int i=1
条件判断: 对条件|变量i进行判断,如果满足要求,结果为true,就可以执行这一次循环体语句{},如果结果为false,不满足要求,这一次执行不了并且循环结束
条件变化: 变量i自身值的改变
for循环的执行流程:
1.条件初始化
2.条件判断
3.不满足条件结束循环,满足条件执行,执行循环体语句
4.条件变化
从第二次循环开始,条件初始化就不执行了
如果循环体语句只有一句,前后的{}可以省略
/*
* for循环练习
*/
public class ForPractice03 {
public static void main(String[] args) {
//求1-100的和,求1-100的偶数和,求1-100的奇数和
int sum=0; //所有数的和
int sum1=0 ; //所有偶数和
int sum2=0 ; //所有奇数和
for(int i=1;i<=100;i++){
sum+=i; //所有数的和
if(i%2==0){
sum1+=i;
}else{
sum2+=i;
}
}
System.out.println("1-100的和:"+sum);
System.out.println("1-100的偶数和:"+sum1);
System.out.println("1-100的奇数和:"+sum2);
sum=0;
//1-50当中能被4整除的数的和
for(int i=1;i<=50;i++){
if(i%4==0)
sum += i;
}
System.out.println("1-50当中能被4整除的数的和: " + sum);
//求出 1-100当中既能被3整除又能被5整除还能被2整除的和,
sum = 0;
for(int i=1;i<=100;i++){
if(i%3==0 && i%2==0 && i%5==0){
sum += i;
}
}
System.out.println("1-100当中既能被3整除又能被5整除还能被2整除的和: " + sum);
//求出 1-100当中能被3整除或者能被5整除或者能被2整除的和
sum = 0;
for(int i=1;i<=100;i++){
if(i%3==0 || i%2==0 || i%5==0){
sum += i;
}
}
System.out.println("1-100当中能被3整除或者能被5整除或者能被2整除的和: " + sum);
int factorial = 1;
//求5的阶乘 5! 5*4*3*2*1
for(int i=5;i>0;i--){
factorial *= i;
}
System.out.println("5的阶乘: " + factorial);
//请找出[100,300]之间能被5整除的所有数,每行输出8个数
int count=0;
for(int i=100;i<=300;i++){
if(i%5==0){
System.out.print(i+" ");
count++;
if(count==8){
System.out.println();
count=0;
}
}
}
System.out.println();
}
}
while循环
- 格式:
while(条件判断){
循环体语句;
条件变化;
}
注意:能够使用for循环的都能使用while,可以互相转换
确定循环次数|变量变化区间–>推荐使用for
条件不需要我们声明,变化也不需要我们声明 -> 推荐使用while
/*
* While循环练习
*/
public class WhilePractice03 {
public static void main(String[] args) {
//求1-100的和,求1-100的偶数和,求1-100的奇数和
int sum = 0;
int sum1 = 0;
int sum2 = 0;
int i = 1;
while(i<=100){
sum += i;
if(i % 2 == 0){
sum1 += i;
}else{
sum2 += i;
}
i++;
}
System.out.println("1~100之间所有数的和为: " + sum);
System.out.println("1~100之间所有数的偶数和为: " + sum1);
System.out.println("1~100之间所有数的奇数和为: " + sum2);
//System.out.println(i);
//1-50当中能被4整除的数的和
int sum3 = 0;
i = 1;
while(i<=50){
if(i % 4 != 0){
sum3 += i;
}
i++;
}
System.out.println("1-50当中能被4整除的数的和: " + sum3);
//求出 1-100当中既能被3整除又能被5整除还能被2整除的和,
int sum4 = 0;
i = 1;
while(i <= 100){
if(i % 3 == 0 && i % 5 == 0 && i % 2 == 0){
sum4 += i;
}
i++;
}
System.out.println("求出 1-100当中既能被3整除又能被5整除还能被2整除的和: " + sum4);
//求出 1-100当中能被3整除或者能被5整除或者能被2整除的和
int sum5 = 0;
i = 1;
while(i <= 100){
if(i % 3 == 0 || i % 5 == 0 || i % 2 == 0){
sum5 += i;
}
i++;
}
System.out.println("求出 1-100当中能被3整除或者能被5整除或者能被2整除的和: " + sum5);
//求5的阶乘 5! 5*4*3*2*1
int factorial = 1;
i = 1;
while(i <= 5){
factorial *= i;
i++;
}
System.out.println("求5的阶乘: " + factorial);
//请找出[100,300]之间能被5整除的所有数,每行输出8个数
int j = 1;
System.out.println("[100,300]之间能被5整除的所有数为: ");
i = 1;
while(i <= 300){
if(i % 5 == 0){
if(j % 8 == 1)
System.out.print(i);
else{
System.out.print(","+i);
if(j % 8 == 0)
System.out.println();
}
j++;
}
i++;
}
}
}
do while 循环
- do…while与while之间的区别:
do…while 无论是否满足条件都至少执行一次
while: 先判断,满足才执行,不满足结束
do…while:先执行,后判断,判断满足条件继续下一次执行,不满足条件结束 - 格式
条件初始化;
do{
语句体;
条件变化;
}while(条件判断);
/*
* While循环练习
*/
public class DoWhilePractice03 {
public static void main(String[] args) {
//求1-100的和,求1-100的偶数和,求1-100的奇数和
int sum = 0;
int sum1 = 0;
int sum2 = 0;
int i = 1;
do{
sum += i;
if(i % 2 == 0){
sum1 += i;
}else{
sum2 += i;
}
i++;
}while(i<=100);
System.out.println("1~100之间所有数的和为: " + sum);
System.out.println("1~100之间所有数的偶数和为: " + sum1);
System.out.println("1~100之间所有数的奇数和为: " + sum2);
//System.out.println(i);
//1-50当中能被4整除的数的和
int sum3 = 0;
i = 1;
do{
if(i % 4 != 0){
sum3 += i;
}
i++;
}while(i<=50);
System.out.println("1-50当中能被4整除的数的和: " + sum3);
//求出 1-100当中既能被3整除又能被5整除还能被2整除的和,
int sum4 = 0;
i = 1;
do{
if(i % 3 == 0 && i % 5 == 0 && i % 2 == 0){
sum4 += i;
}
i++;
}while(i <= 100);
System.out.println("求出 1-100当中既能被3整除又能被5整除还能被2整除的和: " + sum4);
//求出 1-100当中能被3整除或者能被5整除或者能被2整除的和
int sum5 = 0;
i = 1;
do{
if(i % 3 == 0 || i % 5 == 0 || i % 2 == 0){
sum5 += i;
}
i++;
}while(i <= 100);
System.out.println("求出 1-100当中能被3整除或者能被5整除或者能被2整除的和: " + sum5);
//求5的阶乘 5! 5*4*3*2*1
int factorial = 1;
i = 1;
do{
factorial *= i;
i++;
}while(i <= 5);
System.out.println("求5的阶乘: " + factorial);
//请找出[100,300]之间能被5整除的所有数,每行输出8个数
int j = 1;
System.out.println("[100,300]之间能被5整除的所有数为: ");
i = 1;
do{
if(i % 5 == 0){
if(j % 8 == 1)
System.out.print(i);
else{
System.out.print(","+i);
if(j % 8 == 0)
System.out.println();
}
j++;
}
i++;
}while(i <= 300);
}
}
- 99乘法表
public class Practice12{
public static void main(String[] args){
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();
}
}
}
break,continue关键字
break 和 continue ,return之间的区别:
break:
作用: 结束,终止
应用场景: switch语句,循环中,结束最内层循环
continue:
作用: 结束本次循环,直接进入到下一次循环中
应用场景: 循环中
return
也可用于非循环语句并且可以返回一个值
public class Practice11{
public static void main(String[] args){
System.out.print("使用break输出的是: ");
for(int i=1;i<=5;i++){
if(i == 3){
break;
}
System.out.print(i + " ");
}
System.out.println();
System.out.print("使用continue输出的是: ");
for(int i=1;i<=5;i++){
if(i == 3){
continue;
}
System.out.print(i +" ");
}
}
}