JAVA基础阶段03---while与for循环

JAVA基础阶段03

循环结构

while循环

基础结构

while(布尔表达式){
    // 循环内容
}
  • 只要布尔表达式为true,循环就会一直下去
  • 我们大多数情况会让循环停止下来,我们需要一个让表达失效的方式结束循环
  • 少部分情况需要循环一直执行,比如服务器的请求响应监听等。
  • 循环条件一直为true就会造成无限死循环,我们正常的业务编程中应该尽量避免死循环,会影响程序性能或者造成程序卡死崩溃。
public static void main(String[] args) {
    //输出1-100

    int i = 0;

    while (i<100){
        i++;
        System.out.println(i);
    }
}
public static void main(String[] args) {
    //计算1+2+3....+100=?

    int i = 0;
    int sum = 0;

    while (i<=100){
        sum = sum + i;
        i++;
    }

    System.out.println(sum);

}

do while循环

  • 对于while而言,不过不满足条件,则不能进入循环,但我们需要即使不满足条件,也至少执行一次。
  • do while相较于while会至少执行一次

基础结构

do{
    //代码语句
}while(布尔表达式)
public static void main(String[] args) {
    int i = 0;
    int sum = 0;

    do{
        sum=sum+i;
        i++;
    }while(i<=100);
    System.out.println(sum);
}

while与do while的区别

  • while先判断后执行,dowhile先执行后判断
jpublic static void main(String[] args) {
    int a = 0;
    while(a<0){
        System.out.println(a);
        a++;
    }
    System.out.println("==========================");
    do{
        System.out.println(a);
        a++;
    }while(a<0);
}

for循环(重要

  • 虽然所有的循环语句都可以用while或者do while表示,但是java还提供了另一种语句-----for循环,是一些循环结构变得更加简单
  • for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构
  • for循环的执行次数是在执行前就确定的,语法如下
for(初始化;布尔表达式;更新){
    //代码语句
}

for练习

public static void main(String[] args) {
    //练习1:计算0到100之间的奇数和偶数的和

    int oddSum = 0;
    int evenSum = 0;

    for (int i = 0; i <= 100; i++) {
        if(i%2!=0){ //奇数
            oddSum+=i;
        }else{ //偶数
            evenSum+=i;
        }
    }
    System.out.println("输出奇数的和:"+oddSum);
    System.out.println("输出偶数的和:"+evenSum);
}
public static void main(String[] args) {
    //用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
    for (int i = 0; i <= 1000; i++) {
        if(i%5==0){
            System.out.print(i+"\t");
        }
        if(i%(5*3)==0){  //每过三个就是15的倍数能整除15就满足条件
            System.out.println(); //空串换行,或者"\n"
        }
    }
    //println 输出完会换行
    //print 输出完不会换行
    /*
    另一种新定义一个整数作为计数器到3输出回车
     int num=0;
    for (int i = 1; i <=1000; i++) {
        if(i%5==0){
            System.out.print(i+"\t");
            num++;
            if(num%3==0){
                System.out.println();
            }
        }
    }
     */
}
//打印9x9乘法表
//先打印第一列,再把一开始固定的1用新的循环包起来(j的循环)得出一个矩形的乘法表
//去掉累赘的部分,即判断i和j的大小
//打印出空格和换行即可成功
public static void main(String[] args) {
    for (int j = 1; j <= 9; j++) {
        for (int i = 1; i <= j; i++) {
            System.out.print(i+"*"+j+"="+(i*j)+"\t");
        }
        System.out.println();
    }
}

增强for循环

做个了解

  • jdk5引用的主要用于数组或集合的增强型for循环
  • 表达式如下
for(声明语句:表达式){
    //代码句子
}
   
  • 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配,其作用限定在循环语句块,其值于此时数组元素的值相等
  • 表达式:表达是要访问的数组名,或者是返回值为数组的方法。
public static void main(String[] args) {
    int[] numbers = {10,20,30,40,50}; //定义了一个数组

    for(int i = 0;i < 5;i++){
        System.out.println(numbers[i]);
    }
    System.out.println("===================");

    //遍历数组的元素
    for (int x:numbers){
        System.out.println(x);
    }
}
posted @ 2022-03-11 17:53  Joe_ximu  阅读(68)  评论(0)    收藏  举报