Java学习历程四《流程控制语句-循环结构》

流程控制语句

循环结构

特点,根据条件,反复执行

  • while
  • do-while
  • for
  • 嵌套
  • break语句
  • continue语句
while循环

格式

while(循环条件<boolean>){
    循环执行的语句;
}
public class ReduceAdd {
    public static void main(String[] args) {
        //1+...+10
        int n = 1;
        int sum = 0;
        while (n <= 10) {
            sum += n;
            n++;
        }
        System.out.println("sum:" + sum);

    }
}
public class LoopOutPrint {
    public static void main(String[] args) {
        // 分两行循环输出26英文字母
        char ch = 'a';
        int count = 1;//控制什么时候换行
        while (ch <= 'z') {
            System.out.print(ch + " ");
            if (count % 13 == 0) {
                System.out.println();
            }
            ch++;
            count++;
        }

    }
}
do-while循环

语法格式

do{
    语句;
}while(循环条件);

注意:

  • 至少执行一次循环
  • 循环条件后的分号不能丢失
public class DoAddReduce {
    public static void main(String[] args) {
        //1+...+10
        int n = 1;
        int sum = 0;
        do {
            sum = sum + n;
            n++;
        } while (n <= 10);
        System.out.println("Sum:" + sum);
    }
}

猜数字,1-10

import java.util.Scanner;

public class GuessNumber {
    public static void main(String[] args) {
        //
        int right_res = (int) (Math.random() * 10 + 1);//random->[0,1)
        int guess;
        System.out.println("猜1-10的数字游戏");
        do {
            System.out.println("输入猜测数字:");
            Scanner sc = new Scanner(System.in);
            guess = sc.nextInt();
            if (guess > right_res) {
                System.out.println("猜大了");
            } else if (guess < right_res) {
                System.out.println("猜小了");
            }
        } while (guess != right_res);
        System.out.println("您猜中了(" + right_res + ")");
    }
}
for循环

语法格式:

// 表达式1-初始条件
// 表达式2-循环条件
// 表达式3-初始条件的变化
for(表达式1;表达式2;表达式3){
    循环的语句;
}
public class ForReduceAdd {
    public static void main(String[] args) {
        //1+...+10
        int sum = 0;
        for (int i = 1; i <= 10; i++) {
            System.out.println(i);
            sum += i;
        }
        System.out.println("Sum:" + sum);

    }
}

变量定义在方法内部称之为局部变量,上述代码中的局部变量为
sum,i,而且sum和i两个局部变量的作用范围不同,i作用范围
中{局部变量的作用范围仅仅在所定义他的大括号中}

for循环的注意事项:

for循环有三个条件表达式,第一个初始化的条件表达式可以放在循环的外部定义

public class ForReduceAdd {
    public static void main(String[] args) {
        //1+...+10
        int sum = 0;
        int i = 1;
        for (; i <= 10; i++) {
            System.out.println(i);
            sum += i;
        }
        System.out.println("Sum:" + sum);

    }
}

第二个表达式是限制循环结束的,如果省略了,需要在循环体内部通过if条件+break结束循环

if(i==10)break;

第三个条件也可以去掉,但是需要在循环体内部执行条件的表化

循环嵌套
for嵌套
public class Factorial {
    public static void main(String[] args) {
        //阶乘 1!+2!+3!+...+10!
        int s = 1, sum = 0;
        for (int i = 1; i <= 10 ; i++) {
            for (int j = 1; j <= i; j++) {
                /*
                i = 1   1*1
                i = 2   1*1*2
                ...     ...
                * */
                s = s * j;
            }
            //外层for循环对阶乘的结果进行累加
            sum += s;
        }
        System.out.println("1-10阶乘的累加为:" + sum);

    }
}
while循环嵌套
public class xx10x10 {
    public static void main(String[] args) {
        //
        int m = 1,n;
        System.out.println("输出10x10的*");
        while (m <= 10) { 
            n = 1;//初始化n
            while (n <= 10) {
                //输出*
                System.out.print("*");
                n++;

            }
            //输出换行
            System.out.println();
            m++;
        }

    }
}

输出直角三角形

public class RightTriangle {
    public static void main(String[] args) {
        //直角三角形
        int n = 1, m;
        System.out.println("输出*直角三角形");
        while (n <= 4) {
            m = 1;
            while (m <= n) {
                System.out.print("*");
                m++;
            }
            System.out.println();
            n++;
        }
    }
}

输出等腰三角形

public class IsoscelesTriangle {
    public static void main(String[] args) {
        //等腰三角形
        int x = 1, y, z;
        while (x <= 4) {
            y = 5 - x;
            //控制输出的空格个数4,3,2,1
            while (y > 0) {
                System.out.print(" ");
                y--;
            }
            z = x;
            //控制输出"* "的个数 1,2,3,4
            while (z > 0) {
                System.out.print("* ");
                z--;
            }
            //控制换行的次数
            System.out.println();
            x++;
        }

    }
}
break语句

跳出当前循环体{当前},在嵌套循环中,break只能跳出当前循环{一层},执行
break后,当前循环体中break一下的代码将不再执行

public class PrintK {
    public static void main(String[] args) {
        //
        int k = 0;
        for (int i = 1; i < 5; i++) {
            for (int j = 1; j < 5; j++) {
                k = i + j;
                if (j == 3) break;
            }
        }
        System.out.println("k=" + k);
    }
}
//输出k=7
continue语句

只能用在循环体内部,continue语句执行后会结束当前循环执行,再次开始循环

public class SumOdd {
    public static void main(String[] args) {
        //1,3,5,7,9的和
        int sum = 0;
        for (int i = 1; i <= 9; i++) {
            if (i % 2 == 0) continue;
            sum += i;
        }
        System.out.println("Sum=" + sum);

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值