java程序设计基础第五章总结及习题
程序员文章站
2024-03-02 12:52:28
...
(一)、总结
一、循环语句的分类
1、while 循环
while 循环首先检査循环继续条件。如果条件为 true, 则执行循环体;如果条件为 false, 则循环 结束
2、do - while 循环
与 while 循环类似,只是 do - while 循环先执行循环体,然后再检査循环继续条件, 以确定是继续还是终止
3、for 循环
for 循环在循环体执行之前,要检测一下循环 继续条件
二、什么情况下使用什么循环
1、while 循环和 for 循环都称为前测循环( pretest丨oop), 因为继续条件是在循环体执行之
前检测的,do - while 循环称为后测循环( posttest loop), 因为循环条件是在循环体执行之后
检测的。三种形式的循环语句:while、do - while 和 for, 在表达上是等价的。也就是说, 可以使用这三种形式之一来编写一个循环。
2、区别
如果已经提前知道重复次数,那就采用 for 循环
如果无法确定重复次数,就采用 while 循环
如果在检验继续条件前需要 执行循环体,就用 do - while 循环替代 while 循环
三、循环嵌套
1、概念
嵌套循环是由一个外层循环和一个或多个内层循环组成的。每当重复执行一次外层循环 时将再次进人内部循环,然后重新开始。
2、示例
四、关 键 字 break 和 continue
1、关键字 break :立即终止包含 break 的最内层循环。
16.关键字 continue 只是终止当前迭代。
(二)、习题
1、
import java.util.Scanner;
public class Test12 {
public static void main(String[] args) {
System.out.println("请输入一个1~15之间的整数:");
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[][] array = new int[n][2*n+1];
for (int i = 0; i < n; i++) {
for (int j = n-i; j <= n + i; j++){
array[i][j]=Math.abs(n-j)+1;
}
}
for(int i=0;i<n;i++){
for (int j = 0; j < 2*n + 1; j++){
System.out.print(array[i][j]==0?" ":array[i][j]+" ");
}
System.out.println();
}
}
}
2、
Pattern1:
public class Pattern1{
public static void main(String[] args) {
for(int i = 1;i<=6;i++){
for(int j = 1;j<=i;j++)
System.out.print(j);
System.out.println();
}
}
}
Pattern2:
public class Pattern2{
public static void main(String[] args) {
for(int i = 6;i>=1;i--){
for(int j = 1;j<=i;j++)
System.out.print(j);
System.out.println();
}
}
}
Pattern3 :
public class Pattern3{
public static void main(String[] args) {
for(int i = 1;i<=6;i++){
for(int j = 1; j<=(6-i);j++)
System.out.print(" ");
for(int j = i;j>=1;j--)
System.out.print(j);
System.out.println();
}
}
}
Pattern4:
public class Pattern4{
public static void main(String[] args) {
for(int i = 1;i<=6;i++){
for(int j = 1; j<=(i-1);j++)
System.out.print(" ");
for(int j = 1;j<=(7-i);j++)
System.out.print(j);
System.out.println();
}
}
}
3、
import java.util.*;
public class Home3_15 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("请输入要打印的行数: ");
int x=sc.nextInt();
for(int j=1;j<=x;j++) {//这个for循环是用来控制行数
for(int z=1;z<=x-j;z++) {
System.out.print(" ");
}
/*
* 上面这个for循环是用来控制每一行前面的空格数的,使其能呈三角形的形状打印出来
* 例如第一行打印的是x-1个空格,第二行打印的是x-2个空格依此类推
*/
for(int i=1;i<=j+1;i++) {
if(i<=j) {
//主要是要理解%4d的含义,就是后面的数字在打印时,必须占四个空格,数字不足四格时会用空格补齐,由于没有数字占位超过四位,所以它们之间依然会有空格分隔。
System.out.printf("%4d",(int)Math.pow(2, i-1));
}
else {
for(int y=j-2;y>=0;y--) {
System.out.printf("%4d",(int)Math.pow(2,y));
}
}
}
/*
* 上面这个嵌套循环我分为了两部分打印,if中的语句是实现打印前j个数字的顺序打印
* 当外层循环i等于j+1时,直接进入else中的for循环实现后面j-1个数字的打印
*/
System.out.println();//控制一行打完后的换行
}
}
}
上一篇: Java实现获取前、后N天日期的函数分享
下一篇: mybatisPlus查询