例1:使用循环打印一个9*9的正方形,要求每一句输出语句只输出一个 *例2:使用循环打印一个等腰直角三角形,要求每一句输出语句只输出一个*例3:打印九九乘法表例4:使用冒泡算法对数组进行排序
例1:使用循环打印一个9*9的正方形,要求每一句输出语句只输出一个 *简单写法,需要九次输出
public class test3 {
public static void main(String[] args) {
//简单写法(为了避免代码过长,此处以3*3正方形示例)
//第一行
System.out.print("* ");
System.out.print("* ");
System.out.print("* ");
System.out.println();
//第二行
System.out.print("* ");
System.out.print("* ");
System.out.print("* ");
System.out.println();
//第三行
System.out.print("* ");
System.out.print("* ");
System.out.print("* ");
System.out.println();
}
}
使用循环,分三次输出每一行的三个*
public class test3 {
public static void main(String[] args) {
//使用循环,输出每一行的三个*
//第一行
for(int j = 1;j<=3;j++) {
System.out.print("* ");
}
System.out.println();
//第二行
for(int j = 1;j<=3;j++) {
System.out.print("* ");
}
System.out.println();
//第三行
for(int j = 1;j<=3;j++) {
System.out.print("* ");
}
System.out.println();
}
}
使用循环嵌套,一次输出三行的三个*
public class test3 {
public static void main(String[] args) {
//每一行的代码重复度极高,同样可以使用循环来表示。
//即上面的代码可以进一步简化为如下所示循环嵌套
for(int i = 1;i<=3;i++) {
for(int j = 1;j<=3;j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
以上三种方法的运行结果一致,如下图所示:
代码得到了简化。
简单写法,需要九次输出
public class test3 {
public static void main(String[] args) {
//简单写法
//第一行
System.out.print("* ");
System.out.println();
//第二行
System.out.print("* ");
System.out.print("* ");
System.out.println();
//第三行
System.out.print("* ");
System.out.print("* ");
System.out.print("* ");
System.out.println();
}
}
使用循环,分三次输出每一行的*
public class test3 {
public static void main(String[] args) {
//使用循环,输出每一行的三个*
//第一行
for(int j = 1;j<=1;j++) {
System.out.print("* ");
}
System.out.println();
//第二行
for(int j = 1;j<=2;j++) {
System.out.print("* ");
}
System.out.println();
//第三行
for(int j = 1;j<=3;j++) {
System.out.print("* ");
}
System.out.println();
}
}
使用循环嵌套,一次输出三行的*
public class test3 {
public static void main(String[] args) {
//每一行的代码重复度极高,同样可以使用循环来表示。
//即上面的代码可以进一步简化为如下所示循环嵌套
for(int i = 1;i<=9;i++) {
for(int j = 1;j<=i;j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
以上三种方法的运行结果一致,如下图所示:
简单写法,需要四十五次输出
public class test3 {
public static void main(String[] args) {
//简单写法,输出前三行的内容
//第一行
System.out.print("1x1=1 ");
System.out.println();
//第二行
System.out.print("1x2=2 ");
System.out.print("2x2=4 ");
System.out.println();
//第三行
System.out.print("1x3=3 ");
System.out.print("2x3=6 ");
System.out.print("3x3=9 ");
System.out.println();
//以此类推,余下6行略...
}
}
使用循环,分九次输出每一行的内容
public class test3 {
public static void main(String[] args) {
//使用循环,输出前三行的内容
//第一行
for(int j = 1;j<=1;j++) {
System.out.print(j+"x"+1+"="+(j*1)+" ");
}
System.out.println();
//第二行
for(int j = 1;j<=2;j++) {
System.out.print(j+"x"+2+"="+(j*2)+" ");
}
System.out.println();
//第三行
for(int j = 1;j<=3;j++) {
System.out.print(j+"x"+3+"="+(j*3)+" ");
}
System.out.println();
//以此类推,余下6行略...
}
}
使用循环嵌套,一次输出九行的内容
public class test3 {
public static void main(String[] args) {
//每一行的代码重复度极高,同样可以使用循环来表示。
//即上面的代码可以进一步简化为如下所示循环嵌套
for(int i = 1;i<=9;i++) {
for(int j = 1;j<=i;j++) {
System.out.print(j+"x"+i+"="+(j*i)+" ");
}
System.out.println();
}
}
}
以上三种方法的运行结果一致,如下图所示:
使用冒泡排序算法通过四轮比较进行手动排序
public class test3 {
public static void main(String[] args) {
int[] arr = {3,5,4,2,8};
//使用冒泡排序算法手动排序(将数组每个位置的元素从前到后进行两两比较,大的往后放)
//本次案例中定义的数组只有五个元素,因此比较四轮之后就可以完成排序,思路拆解如下:
//第一轮(比较位置0和位置1,位置1和位置2,位置3和位置3,位置3和位置4)
//本轮可以通过比较把最大的数字放到位置4
for (int i = 0; i < arr.length-1; i++) {
if(arr[i]>arr[i+1]) {
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
//第二轮(比较位置0和位置1,位置1和位置2,位置3和位置3)
//本轮可以通过比较把最大的数字放到位置3
for (int i = 0; i < arr.length-2; i++) {
if(arr[i]>arr[i+1]) {
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
//第三轮(比较位置0和位置1,位置1和位置2,位置3和位置3)
//本轮可以通过比较把最大的数字放到位置2
for (int i = 0; i < arr.length-3; i++) {
if(arr[i]>arr[i+1]) {
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
//第四轮(比较位置0和位置1,位置1和位置2)
//本轮可以通过比较把最大的数字放到位置1,第0位的数字是四轮排序中最小的数字,排序完成
for (int i = 0; i < arr.length-4; i++) {
if(arr[i]>arr[i+1]) {
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
}
}
使用循环嵌套,简化以上四轮循环代码如下
public class test3 {
public static void main(String[] args) {
for (int j = arr.length-1; j >= 0 ; j--) {
for (int i = 0; i < j; i++) {
if(arr[i]>arr[i+1]) {
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
}
//运行一下查看排序结果
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
以上两种方法的运行结果一致,如下图所示,完成排序需求:



