Java循环语句for循环以及练习

循环语句for循环

  • 理解:循环语句具有在某些条件满足的情况下,反复执行特定代码的功能
  • 循环结构分类:
    • for循环
    • while循环
    • do-while循环
  • 循环结构四要素:
    • 初始化部分
    • 循环条件部分 ------> 一定是boolean类型的变量或表达式
    • 循环体部分
    • 迭代部分

for循环

基本语法
语法格式:
for (①初始化部分; ②循环条件部分; ④迭代部分){
         	③循环体部分;

**执行过程:**①-②-③-④-②-③-④-②-③-④-…-②

图示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-svZ1zzRd-1689652051575)(F:\BaiduNetdiskDownload\image-20220315013023236.png)]

说明:

  • for(;;)中的两个;不能多也不能少
  • ①初始化部分可以声明多个变量,但必须是同一个类型,用逗号分隔
  • ②循环条件部分为boolean类型表达式,当值为false时,退出循环
  • ④可以有多个变量更新,用逗号分隔

案例1:使用for循环重复执行某些语句

题目:输出5行HelloWorld

//输出5行helloworld
class ForTest{
	public static void main(String[] args){
        for(int i = 0; i < 5 ;i++){
            System.out.print("HelloWorld");
        }
    }
}

案例2:格式的多样性

题目:写出输出的结果

public class ForTest2 {
	public static void main(String[] args) {
        int num = 1;
        for(System.out.print("a");num < 3;System.out.print("c"),num++){
            System.out.print("b");
        }
    }
}                 //输出:abcbc

案例3:累加的思想

题目:遍历1-100以内的偶数,并获取偶数的个数,获取所有的偶数的和

class ForTest3{
    public static void main(String[] args){
        int sum = 0;
        int count = 0;
        for(int i = 1;i <= 100;i++){
            if(i%2==0){
                count++;
                sum += i;
            }
        }
        System.out.print("1-100以内有"+count+"个偶数");
        System.out.print("和为"+sum);
    }
}

案例4:结合分支结构使用

题目:输出[100,1000)所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身。例如: 153 = 1*1*1 + 3*3*3 + 5*5*5

class ForTest4{
    public static void main(String[] args){
        int count = 0;
        for(int i = 100;i < 1000; i++ ){
            int ge = i  % 100 % 10;
            int shi = i / 10 % 10;
            int bai = i / 100;
            if( i == ge*ge*ge + shi*shi*shi + bai*bai*bai){
                count++;
                System.out.println(i);
            }
        }
        System.out.println("共有"+count+"个水仙花数");
    }
}

拓展:

打印出四位数字中“个位+百位”等于“十位+千位”并且个位数为偶数,千位数为奇数的数字,并打印符合条件的数字的个数。
class ForTest5{
    public static void main(String[] args){
        int count = 0;
        for(int i = 1000;i < 10000;i++){    				
            int qian = i / 1000;
            int bai = i / 100 % 10;
            int shi = i / 10 % 10;
            int ge = i % 10;
            if(ge+bai==shi+qian){
                if(ge%2==0 && qian%2==1){
                    System.out.println(i);
                    count++;
                }
            }
        }
        System.out.println("共有"+count+"个");
    }
}

案例5:结合break的使用

说明:输入两个正整数m和n,求其最大公约数和最小公倍数。

比如:12和20的最大公约数是4,最小公倍数是60。

约数:12为例,约数有1,2,3,4,6,12 
     20为例,约数有1,2,4,5,10,20
     公约数有1,2,4,最大公约数为4
倍数:12为例,倍数有12,24,36,48
     20为例,倍数有20,40,6080
     公倍数是60,120,
     最小公倍数是60
import java.util.Scanner;
public class ForTest6{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入两个正整数m和n");
        int m = scan.nextInt();
        int n = scan.nextInt();
        int min = (m - n)<0 ? m : n;
        //最大公约数
        int gcd = 1;
        for(int i = min;i >= 1;i--){
            if(m % i == 0 && n % i == 0){
                gcd = i;
                break;
            }
        }
        //最小公倍数
        //int lcm = m * n / gcd;  公式
        
        int lcm = 1;
        int max = (m -n) > 0 ? m : n;
        //最小公倍数
        for(int i = max; i <= m * n ; i++){
            if(i%m==0 && i%n==0){
                lcm = i;
                break;
            }
        }
        System.out.println(m+"和"+n+"的最大公约数是"+gcd+",最小公倍数是"+lcm);
    }
}

说明:

1、我们可以在循环中使用break。一旦执行break,就跳出当前循环结构。

2、小结:如何结束一个循环结构?

​ 结束情况1:循环结构中的循环条件部分返回false

​ 结束情况2:循环结构中执行了break。

3、如果一个循环结构不能结束,那就是一个死循环!我们开发中要避免出现死循环。

练习

**练习1:**打印1~100之间所有奇数的和

public class Exercise1{
    public static void main(String[] args){
        int sum = 0;
        for(int i = 1;i <= 100;i++){
            if(i % 2 == 1){
                sum += i;
            }
        }
        System.out.println("1~100之间所有奇数的和为"+sum);    //2500
    }
}

**练习2:**打印1~100之间所有是7的倍数的整数的个数及总和(体会设置计数器的思想)

public class Exercise2{
	public static void main(String[] args){
        int count = 0;
        int sum = 0;
        for(int i = 1;i <= 100;i++){
            if(i % 7 == 0){
                count++;
                sum += i;
            }
        }
        System.out.println("1~100之间所有是7的倍数的整数的个数有"+count+"个");
        System.out.println("总和为:"+sum);
    }
}

练习3:

编写程序从1循环到150,并在每行打印一个值,另外在每个3的倍数行上打印出“foo”,在每个5的倍数行上打印“biz”,在每个7的倍数行上打印输出“baz”。

public class Exercise3{
    public static void main(String[] args){
        for(int i = 1; i <= 150;i++){
            System.out.print(i);
            if(i%3==0){
                System.out.print("foo");
            }
            if(i%5==0){
                System.out.print("biz");
            }
            if(i%7==0){
                System.out.print("baz");
            }
            System.out.println();
        }
    }
}
//注意:此处不能使用if-else,因为有的数字同时会满足多个情况,而if-else是多选一的情况,如果使用if-else会漏选。
      System.out.print("biz");
        }
        if(i%7==0){
            System.out.print("baz");
        }
        System.out.println();
    }
}

}
//注意:此处不能使用if-else,因为有的数字同时会满足多个情况,而if-else是多选一的情况,如果使用if-else会漏选。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值