for循环讲解

for循环
循环结构:for循环 嵌套循环 增强型循环
循环结构是指在程序中需要反复执行的某个功能而设置的一种程序结构(重复干活)
它由循环体中的条件,判断继续执行某个功能还是退出循环
根据判断条件,循环结构可细分为先判断后执行的循环结构和先执行后判断的循环结构
  • 格式:
//语法
for () {
  
}



for( 1.开始位置 ; 2.循环条件 ; 3.更改条件 )

{
  
    //4.执行的操作/循环体/重复执行的任务

}
//执行过程 1243  243

//“初始化条件”一般为数据的初始化
//“判断条件”一般与前面初始化的数据有关
//“条件改变”一般改变那个数据

image.png

案例
//输出 0-9
  for (int i = 0 ;i<10;i++ ) {
            System.out.println(i);
            //0,1,2,3,4,5,6,7,8,9
        }

//单层for循环实现99乘法口诀表

    for (int i = 1;j = 1;i<=9;j++){
            System.out.print(j+"*"+i+"="+i*j+"\t");
            if (i == j){
                System.out.println();
                j = 0;
                i++;
            }
        }

//i控制行,j控制列,如果行和列相等,代表到了最后一个,该换行了
//换行后需要把j也就是列,重新赋值为0,因为一行需要从头开始
//还需要调用i++,否则将进入死循环。

for循环讲解_第1张图片

嵌套for循环
  • 根据外层的条件,判断里层能否执行,如果能执行,就把里层代码都循环完毕后,再继续执行外层,继续判断。
  • 形式
  
  for(…){
  ​
         for(…){
  ​
  }
  ​
  }
案例1
//题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

//例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
//程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
        
            
        int sum=0;//水仙花的总数

        for (int i = 100; i < 1000;i++) {
            
            
            int bite=i%10;  //求得个位

            int ten= i / 10 % 10; //十位

            int hundred=i/100; //求得百位

            //如果符合水仙花条件的数打印出来

            if (i==(bite*bite*bite)+

                    (ten*ten*ten)+(hundred*hundred*hundred)) {

                System.out.println(i+"    是水仙花");


                sum++;

            }



        }
        System.out.println("总共有水仙花个数:"+sum);

for循环讲解_第2张图片

案例2
// TODO 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
        
//程序分析:可填在百位、十位、个位的数字都是1、2、3、4。这里要用3个for循环
//用if判断条件是否符合,符合条件的数字打印出来,并计算个数总和

        int sum=0;

        for (int bite = 1; bite < 5;bite++) {
            for (int ten = 1; ten < 5;ten++) {
                for (int hundred = 1; hundred < 5;hundred++) {
                    if (bite !=ten && bite !=hundred && ten !=hundred) {//符合条件的数字
                        
                        
                          

                        System.out.print((hundred*100 + ten*10  + bite) +"  ");

                        sum++;//计算个数


                        if (sum%10==0) {//十个一行
                            System.out.println();

                        }

                    }

                }

            }

        }
        
        System.out.println("\n总共有:"+sum+"个这样的数");

for循环讲解_第3张图片

增强型循环

你可能感兴趣的:(java)