欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java程序设计基础第五章总结及习题

程序员文章站 2024-03-02 12:52:28
...

(一)、总结

一、循环语句的分类

1、while 循环
while 循环首先检査循环继续条件如果条件为 true, 则执行循环体如果条件为 false, 则循环 结束
java程序设计基础第五章总结及习题
 
2、do - while 循环
while 循环类似只是 do - while 循环先执行循环体然后再检査循环继续条件以确定是继续还是终止
 
java程序设计基础第五章总结及习题
3、for 循环
for 循环在循环体执行之前要检测一下循环 继续条件
java程序设计基础第五章总结及习题
 

二、什么情况下使用什么循环

1、while 循环和 for 循环都称为前测循环pretestoop), 因为继续条件是在循环体执行之
前检测的do - while 循环称为后测循环posttest loop), 因为循环条件是在循环体执行之后 
检测的三种形式的循环语句whiledo - while for, 在表达上是等价的也就是说可以使用这三种形式之一来编写一个循环
2、区别
如果已经提前知道重复次数,那就采用 for 循环
如果无法确定重复次数就采while 循环
如果在检验继续条件前需要 执行循环体就用 do - while 循环替代 while 循环

三、循环嵌套

1、概念

嵌套循环是由一个外层循环和一个或多个内层循环组成的每当重复执行一次外层循环 时将再次进人内部循环然后重新开始
 
2、示例
 
 java程序设计基础第五章总结及习题
 
 

四、关 键 字 break continue

1、关键字 break :立即终止包含 break 的最内层循环
java程序设计基础第五章总结及习题
16.关键字 continue 只是终止当前迭代
java程序设计基础第五章总结及习题
 

(二)、习题

1、

java程序设计基础第五章总结及习题

 
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、

java程序设计基础第五章总结及习题

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、

java程序设计基础第五章总结及习题

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();//控制一行打完后的换行
			}
		}
	}