Java学习日记基础篇(三-下)——流程控制之循环控制
循环控制
for循环
语法:
for(循环初值;循环条件;步长) { 语句; //循环体 }
例子:
import java.io.*; public class Demo4 { public static void main(String args[]) { for(int i=0;i<10;i++) { System.out.println("12.3"); } } }
while循环
语法:特别说明while循环是先判断,再执行语句
while(循环条件) { 语句; //循环体 }
例子:
import java.io.*; public class Demo4 { public static void main(String args[]) { int i=0; while(i<10) { System.out.println("12.1"); i++; } } }
do while循环
语法:特别说明:do while是先执行再判断
do { 语句; //循环体 }while(循环条件);
例子:
import java.io.*; public class Demo4 { public static void main(String args[]) { int i = 0; do{ System.out.println("do while循环"); i++; }while(i<10); } }
do while 和 while 的区别
import java.io.*; public class Demo4 { public static void main(String args[]) { int i=0; while(i>10) { System.out.println("while循环"); i++; } for (i=0;i>10;i++) { System.out.println("for循环"); } i = 0; do{ System.out.println("do while循环"); i++; }while(i>10); } } 输出结果: D:\myJavaDemo>java Demo4 do while循环
do while不管符不符合条件都会执行一次循环
案例:请编写一个程序,可以接受一个整数,表示层数,打印出金字塔
当遇到一个题无从下手时,可以先拆解成简单的问题
public class Demo5 { public static void main(String []args) { //死去活来-->打四层 int lay = 4; //表示有多少层 for (int i=1;i<=lay;i++) { //打印* for(int k=lay-i;k>0;k--) //int k=1;k<=lay-i;k++ { System.out.print(" "); } for (int j=1;j<=(i-1)*2+1;j++) //1-1,2-3,3-5 { System.out.print("*"); } System.out.println(); //打印出换行符 } } }
注意 System.out.println 和 System.out.print 不一样,前者会打出换行
案例二:将金字塔打印成镂空形状的
- 提示:要想到对打印 * 的那条语句动手脚
- 注意到只有第一层和最后一层打印的东西和原来完全相同,所以要做判断,判断是否是顶层或者底层,i表示层数——(i==1 || ==lay)
- 然后进行*号的判断,前后的 * 号都要打出来,所以要判断 * 是否是第一个和最后一个,j表示要打印的是第几个 * ——(j==1 || j==(i-1)*2+1),剩下的要打印 空格
public class Demo5 { public static void main(String []args) { int lay = 7; for (int i=1;i<=lay;i++) { for(int k=lay-i;k>0;k--) { System.out.print(" "); } for (int j=1;j<=(i-1)*2+1;j++) { //判断盖层是否是顶层或者是底层 if(i==1||i==lay) { System.out.print("*"); } else { //如果是第一个*和最后一个*号,都要打出来 if(j==1||j==(i-1)*2+1) { System.out.print("*"); } else //否则就打印空格 { System.out.print(" "); } } } System.out.println(); } } }
作业:打一个镂空的菱形