首页 > 其他分享 >DAY10

DAY10

时间:2024-07-20 18:58:14浏览次数:15  
标签:do struct int while 循环 DAY10 public

循环结构

  1. while循环

  2. do..while 循环

  3. for循环

在Java5中引入了一种主要用于数组的增强型for循环

while 循环

while是最基本的循环,它的结构为:

只要布尔表达式为true,循环就会一直执行下去

我们大多数情况是会让循环停止下来的,我们需要一个让表达方失效的方式来结束循环

少部分情况需要一直循环一直执行,比如服务器的请求相应监听等

循环条件一直为true就会造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环。会影响程序的性能或造成程序卡死奔溃

package com.drumk.struct;
public class WhileDemo01{
    public static void main(String[] args){
        //输出1~100
        int i = 0;
        while (i<100){
            i++;
            System.out.println(i);
        }
    }
}
package com.drumk.struct;
public class WhileDemo02{
    public static void main(String[] args){
        //死循环
        while(true){
            //比如等待客户端连接,定时检查...
        }
    }
}
package com.drumk.struct;
public class WhileDemo03{
    public static void main(String[] args){
        //计算1+2+3+4...+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循环至少会执行一次

while和do...while的区别:

  • while先判断后执行。do...while是先执行后判断

  • do...while总是保证循环体会被至少执行一次。这是他们的主要差别

package com.drumk.struct;
public class DoWhileDemo01{
    public static void main(String[] args){
      int i = 0;
      int sum = 0;
        
      do{
          sum = sum + i;
          i++;
      }while(i<=100);
       System.out.println(sum);
    }   
}
package com.drumk.struct;
public class DoWhileDemo02{
    public 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循环执行的次数是在执行前就确定的

package com.drumk.struct;
public class ForDemo01{
    public static void main(String[] args){
      int a = 1;//初始化条件
      while (a<=100){//条件判断
          System.out.println(a);//循环体
          a+=2;//迭代
      }
        System.out.println("while循环结束!");
        //初始化,条件判断,迭代
        for(int i =1;i<=100;i++){
            System.out.println(i);
        }
        System.out.println("for循环结束!");
        /*
        关于for循环有以下几点说明:
        最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。然后,检测布尔值表达式的值。如果为true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)。再次检测布尔值表达式。循环执行上面的过程。
        */
    }    
}
package com.drumk.struct;
public class ForDemo02{
    public static void main(String[] args){
      //计算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);
    }
}
package com.drumk.struct;
public class ForDemo03{
    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){  //每行
                System.out.println();
              //System.out.print("\t");
            }
        }
        //println 输出完会换行
        //print 输出完不会换行
    }
}

标签:do,struct,int,while,循环,DAY10,public
From: https://blog.csdn.net/Drumk/article/details/140572197

相关文章

  • Day10(栈与队列) | 150. 逆波兰表达式求值 239. 滑动窗口最大值 347.前 K 个高频元
    150.逆波兰表达式求值给你一个字符串数组tokens,表示一个根据逆波兰表示法表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。注意:有效的算符为'+'、'-'、'*'和'/'。每个操作数(运算对象)都可以是一个整数或者另一个表达式。两个整数之间的除法总是......
  • C基础day10
    #include<myhead.h>#defineMax_Size100//strlen函数intmy_strlen(constchar*str){ intlen=0; while(*str++!='\0') { len++; } returnlen;}//strcpy函数voidmy_strcpy(char*dest,constchar*src){ while(*src)//遍历src将src赋值给de......
  • day10-stack&Queue-part01-7.12
    tasksfortoday:1.理论基础2.232用栈实现队列3.225用队列实现栈4.20有效的括号5.1047删除字符串中所有相邻重复项--------------------------------------------------------------------------1.理论基础stack:firstinlastout     head    ......
  • Day10-面向对象-继承和多态
    继承和多态Day10面向对象-继承2.继承2.1继承的好处2.2继承的语法2.3继承的特点一:成员变量2.3.1私有化(private)2.3.2成员变量不重名2.3.3成员变量重名(实际开发中不推荐这样做)2.4继承的特点二:成员方法2.4.1成员方法不重名2.4.2成员方法重名——重写(Override)......
  • C++从淬体到元婴day10之模板
    2024/6/30模板概念:在C++中,模板是一种泛型编程的工具,它允许程序员编写与类型无关的代码。作用:通过使用模板,你可以编写一种可以处理多种数据类型的函数或类,而无需为每种数据类型编写单独的实现。分类:函数模板和类模板函数模板建立一个通用函数,其函数返回值类型和形参类......
  • JAVA学习笔记DAY10——SpringBoot基础
    文章目录SpringBoot3介绍SpringBoot快速入门@SpringBootApplicationSpringBoot配置文件统一配置管理Yaml配置优势tipsSpringBoot整合SpringMVC静态资源拦截器interceptorSpringBoot整合DruidSpringBoot整合MybatisSpringBoot整合txaopSpringBoot打包......
  • day10 - 字符串
    目录1.API1.1API概述1.2如何使用API帮助文档2.String类2.1String类概述2.2String类的特点2.3String类的构造方法2.4创建字符串对象两种方式的区别2.5字符串的比较2.5.1==号的作用2.5.2equals方法的作用2.6用户登录案例2.6.1案例需求2.6.2代码实现2.7遍......
  • m2_day10 [IO流]
    课程内容:Reader和WriterFileReader和FileWriterBufferedReader和BufferedWriterPrintStream和PrintWriterPrintWriter相较于BufferedWriter强大之处Reader和WriterReader所有字符输入流统一的父类抽象类intread()intread(char[]data)in......
  • 代码随想录 算法训练营 day10 leetcode232 用栈实现队列 Leetcode225 用队列实现栈 Le
    Leetcode232用栈实现队列题目链接讲解用两个栈实现队列每次需要出队列或者查看队头元素时,将输入栈的所有元素放到输出栈classMyQueue{Stack<Integer>stackIn;Stack<Integer>stackOut;publicMyQueue(){stackIn=newStack<>();//负责进......
  • day10
    今天是day10题目一:滑动窗口最大值,要求从一个大小为k的滑动窗口从数组的最左端移动到数组的最右侧最终返回窗口中的最大值fromcollectionsimportdequeclassMyQueue:  def__init__(self):    "双端队列"    self.queue=deque()  defpop(sel......