For 循环基础代码运用

/*
* for循环
* 初始化条件 int i=0
* 判断条件 i<10 ?
* 循环体 code
* 循环条件 i++
* */
for (int i = 0; i < 10; i++) {
    code;
}
for (int i = 10; i > 0 ; i--) {
    code;
}
//continue; 直接到下一次循环
//break; 退出这个循环

For 双重循环运用

// 输出样例:
// *****
// *****
// *****
// *****
// *****

// 代码:
public static void main(String[] args) {
    for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 5; j++) {
            System.out.print("*");
        }
        System.out.println();
    }
}

// 打印一个等腰三角形:
//     *
//    ***
//   *****
//  *******
// *********

// 代码:
for (int i = 0; i < 5; i++) {
    for (int j = 4 ;j>i;j--) {
        System.out.print(" ");
    }
    for (int k = 1; k <= 2*i+1; k++) {
        System.out.print("*");
    }
    System.out.println();
}

// 打印一个菱形:
//         *
//        ***
//       *****
//      *******
//     *********
//      *******
//       *****
//        ***
//         *

// 代码:
public static void main(String[] args) {
    System.out.print("请输入菱形的边长: ");
    Scanner scanner = new Scanner(System.in);
    int diamondLong = scanner.nextInt();
    String[] starArr = new String[diamondLong];

    for (int i = 0; i < diamondLong; i++) {
        starArr[i]="";
        for (int j = i; j < diamondLong; j++) {
            starArr[i]+=" ";
        }
        for (int j = 1; j <= 2*i+1 ; j++) {
            starArr[i]+="*";
        }
        System.out.println(starArr[i]);
    }
    for (int i = diamondLong-2; i >=0 ; i--) {
        System.out.println(starArr[i]);
    }
}
Break,Continue 可以加标签
public static void main(String[] args) {
    a:for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 5; j++) {
            if (j==1) {
                break a;
            }
        }
    }
}

利用 For 循环做一个小型计算器

    public static void main(String[] args) {
    /*
     * 从键盘输入两个数字和一个符号
     * 加减乘除
     * 最终打印输出计算结果
     * 其中注意:
     * 1.除数不能为0
     * 2.符号输入不对怎么办?
     * 3.计算器能不能一直算下去
     * */

    cal:for (; ; ) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入第一个数: ");
        double num1 = scanner.nextDouble();
        System.out.print("请输入第二个数: ");
        double num2 = scanner.nextDouble();
        double result = 0;
        String judge;
        symbol:for ( ; ; ) {
            System.out.print("请输入运算符号: ");
            judge = scanner.next();

            switch (judge) {
                case "+":
                    result = num1 + num2;
                    break symbol;
                case "-":
                    result = num1 - num2;
                    break symbol;
                case "*":
                    result = num1 * num2;
                    break symbol;
                case "/":
                    if (num2 == 0) {
                        System.out.println("there has a error:除数不能为0,计算器将会重新开始");
                        continue cal;
                    } else {
                        result = num1 / num2;
                    }
                    break symbol;
                default:
                    System.out.println("there has a error:运算符号只能为 + - * /,请重新输入运算符号");
                    continue symbol;
            }

        }

        String numStr1=String.valueOf(num1),numStr2=String.valueOf(num2),resultStr=String.valueOf(result);
        if (result == (int)result) {
            resultStr = String.valueOf((int)result);
        }
        if (num1 ==(int)num1) {
            numStr1=String.valueOf((int)num1);
        }
        if (num2==(int)num2) {
            numStr2=String.valueOf((int)num2);
        }
        System.out.println("计算结果为: " + numStr1 + judge + numStr2 + "=" + resultStr);
        for ( ; ;) {
            System.out.println("是否继续计算: 1、是  2、否");
            int again = scanner.nextInt();
            if (again==2) {
                System.out.println("你退出了程序");
                break cal;
            }
            if (again==1) {
                continue cal;
            }
            System.out.println("there has a error:你选择了一个不符合的选项,请重新选择!");
        }
    }
除数如果为0,将会提示重新输出除数,不会返回到程序最开始的地方,并且记录运算符号
程序结束后,提示“是否继续计算”,如果不选择符合的选项,将会一直提示“重新选择!”
运算符号如果为 error 时,将会反复提示,一直到输入了正确的运算符号
小细节:输入的两位数字num1num2double类型
如果只是整型的num1+num2 输出将会变成 1.0+2.0=3.0
所以我将num1num2,最后的result全部判断了一遍
若本身 与 (int)本身 相等,则显示(int)本身,变为1+2=3
经测试 7.5 / 2.5 =3

Foreach 循环基础代码运用

foreach 增强 for 循环
`遍历`,把数组中的元素都操作一遍
foreach语句(增强for循环)遍历数组
for (int i : arr) {
    System.out.println(i);
}

while 循环基础代码运用

while(判断条件) {
    code;
}

do...while 循环基础代码运用

do {
    code;
} while (判断条件);
whiledo...while
如果条件不满足,一次都不执行无论条件是否满足,循环至少执行一次

利用 循环 做一个猜数字小游戏

public static void main(String[] args) {
    /*
        猜数字小游戏
        键盘输入一个数字
        猜一猜输入的是什么?

        请输入一个数字:
        20
        数字保存成功,请猜猜数字是几?
        比较大小,如果大了提示大了,如果小了提示小了
     */
    System.out.println("请输入一个数字");
    Scanner scanner = new Scanner(System.in);
    int times=0,num,sysNum = scanner.nextInt();
    while (true) {
        System.out.println("请输入你要猜的数字");
        num = scanner.nextInt();
        if (num == sysNum) {
            times++;
            break;
        }
        if (num > sysNum) {
            times++;
            System.out.println("你猜大了,这是你猜的第 "+times+ " 次!");
            continue;
        }
        times++;
        System.out.println("你猜小了,这是你猜的第 "+times+" 次!");
    }
    if (times==1) {
        System.out.println("太幸运了,你一下子就猜对了");
    } else {
        System.out.println("恭喜你猜对了,你一共用了 "+times+" 机会!");
    }
}

由于目前还没有学Random创建随机数字,sysNum代指的是伪被猜数字
times记录的是 用了几次机会 即猜了几次
在原基础上加了点功能

每次猜错都会提示你,这是你猜的第几次
猜对了也会提示你,一共猜了几次
如果一次就猜对了会提示你,“太幸运啦”

终止程序执行的方法
0: 安全退出
-1:强制退出
System.exit(0);

多维数组的遍历

int [][] arr = new int[2][];
arr [0] = new int[]{1,2,3,4};
arr [1] = new int[]{-1,-2,-3,-4,-5};

// for 双重循环遍历
for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j < arr[i].length; j++) {
        System.out.print(arr[i][j]+",");
    }
    System.out.println();
}

// foreach 遍历
for (int[] ints : arr) {
    for (int anInt : ints) {
        System.out.print(anInt+",");
    }
    System.out.println();
}
最后修改:2023 年 01 月 09 日
如果觉得我的文章对你有用,请随意赞赏