首页 > 编程语言 >Java8/18

Java8/18

时间:2022-09-18 19:46:35浏览次数:88  
标签:语句 Scanner int 18 System 循环 Java8 表达式

Java流程控制

1.用户交互Scanner

  1. Scanner是Java5提供的一个工具类(java.until.Scanner),用来获取用户的输入,实现人机交互。

  2. 基本语法:Scanner s=new Scanner(System.in);

  3. 通过Scanner类的next()和nextLine()方法获取输入的字符串,在读取前一般需要使用hasNext()或hasNextLine()来判断是否还有输入。

  4. next()和nextLine()方法的区别:

    • next():
      • 不能得到带空格的字符串;
      • 一定要读取到有效字符才可以结束输入
      • 对输入有效字符之前遇到的空格符,next()方法会自动将其去掉
      • 只有输入有效字符后才将其后面输入的空白符作为结束符
      • next()方法的结束符有空格,tab,回车
    • nextLine():常用
      • 可以获得有空格的字符串
      • 只以回车作为结束符
  5. Scanner的其他方法:scanner.hasNextInt()等....

    • 练习代码:

      public static void main(String[] args) {
              /*输入多个数字,并求输入个数和平均值,输入非数字结束
              */
              //创建一个扫描器对象,用于接收键盘数据
              Scanner scanner=new Scanner(System.in);
              //求和sum
              double sum=0;
              //计数num
              int num=0;
              System.out.println("请输入数字:");
              //通过循环判断是否还有输入,并在里面对每一次输入进行求和并计数
              while (scanner.hasNextDouble()){
                  double x=scanner.nextDouble();
                  sum=sum+x;//累加和
                  num++;//计数
                  System.out.println("你输入了第"+num+"个数字,当前求和sum="+sum);
              }
              System.out.println("输入了"+num+"个数字");
              System.out.println(+num+"个数字的平均值是:"+sum/num);
              //凡是属于IO流的类如果不关闭会一直占用资源,要在结束时关闭
              scanner.close();
          }
      

2.顺序结构

  1. Java的基本结构,除非特别指明,否则就按顺序一句一句的执行
  2. 顺序结构是最简单的算法结构

3.选择结构

  1. if选择结构

    • 语法:if(任意表达式){表达式为真语句; }
  2. if-else

    • 语法:if(任意表达式){表达式为真语句; }

      ​ else{表达式为加语句; }

    • public static void main(String[] args) {
          Scanner scanner=new Scanner(System.in);
          String str=scanner.nextLine();
          //equals:判断字符串是否相等
          if(str.equals("Hello")){
              System.out.println(str);
          }else{
              System.out.println("End");
          }
      
          scanner.close();
      }
      
  3. if多选择结构:

    • 语法:if(任意表达式){表达式为真语句; }

      ​ else if(任意表达式){语句; }

      ​ else if(任意表达式){语句; }

      ​ else{表达式全都为假语句;}

  4. 嵌套的if结构:

    • 语法:if(任意表达式1){

      ​ if(任意表达式2){

      ​ }

      ​ }

  5. switch选择结构:

    • 语法:switch(任意表达式){

      ​ case 1:语句;

      ​ case 2:语句;

      ​ default:语句;

      ​ }

    • case后的值必须是整型常量(字符型常量,枚举值)

    • case穿透现象:如果case语句后没有加break语句,则程序会一直向下执行直到遇到break或switch结束

    • break可用于结束选择结构

    • JDK7新特性,Java支持字符串类型(String,字符的本质是数字)作为switch表达式

4.循环结构

  1. while循环

    • 语句:while(任意表达式){表达式为真时的+循环体;}

    • 先判断再执行,可能一次都不执行

    • 避免死循环

    • public static void main(String[] args) {
          /*
          while(true){
              //表达式恒为真,死循环,程序会崩溃
              //大多数情况下会让循环在某一条件下结束
              //少部分情况要让循环一直执行,比如服务器的请求和响应监听等
          }
          */
          //计算1+2+3+....+100=?
          int i=0;
          int sum=0;
          while(i<=100){
              sum+=i;
              i++;
          }
          System.out.println(sum);//输出结果为5050
      }
      
  2. do-while循环

    • 语句:do{

      ​ 循环体;

      ​ }while(任意表达式);

    • 先执行再判断,循环体至少执行一次

    • public static void main(String[] args) {
          int i=0;
          while(i<0){
              System.out.println("while 输出"+i);
          }
          System.out.println("+++++++++++++++");
          do{
              System.out.println("do-while 输出"+i);
          }
          while(i<0);
      }
      
  3. for循环

    • for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构

    • 语句:for(表达式1(初始化);表达式 2 (布尔表达式);表达式 3(更新迭代)){循环体;}

    • for循环的初始化步骤,可以声明一种类型,和一个或多个循环控制变量

    • 执行一次循环体之后,才执行表达式3

    • for循环三个表达式都可以为空

    • public static void main(String[] args) {
          int i=1;//初始化
          while (i<100){//条件判断
              System.out.println(i);
              i+=2;//迭代
          }
          System.out.println("while循环结束");
          //   初始化     条件判断   迭代
          for (int a = 0; a < 100; a+=2) {
              System.out.println(a);
          }
          System.out.println("for循环结束");
          
          /*for 死循环
          for(;;)
           */
      }
      
    • for循环练习:

      public static void main(String[] args) {
          //练习1:输出1-1000之内能被5整除的数,且每行输出3个
          for (int i = 0; i <= 1000; i++) {
              if(i%5==0){//计算能被5整除的数
                  System.out.print(i+"\t");
              }
              if (i%(5*3)==0){//换行
                  System.out.println();
              }
              /*
                  println 输出 并换行
                  print输出后不会换行
                  \t 转义字符 代表一个tab
               */
          }
      
      //练习2:打印出99乘法表
      int x ,y;
      for (x = 1;  x<=9; x++) {
          for (y=1;y<=x;y++){
              System.out.print(+y+"*"+x+"="+x*y+"\t");
          }
          System.out.println();
      }
      
      

image-20220903155614809

  1. 增强for循环:

    • Java引入一种主要用于数组和集合的增强型for循环。

    • 语句:for(声明语句:表达式){循环体;}

    • 声明语句:声明新的局部变量,该变量的类型必须和数组元素的数据类型一致

    • 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

    • 增强型for循环:

      public static void main(String[] args) {
          int[] number={1,2,3,4,5};
          for (int x:number){
              System.out.println(x);
          }
          /*等价于:
              int [] number={1,2,3,4,5};
              for (int x=0;x<5;i++){
                  System.out.println(number[x]);
              }
      
           */
      

5.控制语句(break和continue、goto)

  1. break:用于循环结构和switch语句中,可以强制退出循环结构,不执行循环体中剩下的语句
  2. continue:只能用于循环语句中,终止某一次循环过程,跳过本次循环后续语句,直接进入下一次循环
  3. goto:语句:goto:....;

6.练习(打印三角)

  • 代码:

    package com.bbh.struct;
    
    public class TestDemo01 {
        public static void main(String[] args) {
            //打印三角形
            for (int i = 1; i <= 5; i++) {
                for (int j = 5; j>=i; j--) {
                    System.out.print(" ");
                }
                for (int j = 0; j < i; j++) {
                    System.out.print("*");
                }
                for (int j = 1; j < i; j++) {
                    System.out.print("*");
                }
                System.out.println();
    
            }
        }
    }
    

标签:语句,Scanner,int,18,System,循环,Java8,表达式
From: https://www.cnblogs.com/tuming/p/16705550.html

相关文章

  • Java8/18
    Java方法1.方法概念eg:System.out.println();----System是一个系统类,out是System类的一个输出对象,println()就是一个方法什么是方法:Java方法是语句的集合,他们在一起执行......
  • 2022/9/18——zTao.力扣杂记
    剪枝与回溯对于需要求出各种满足题目要求的组合类型的题目。往往需要用到剪枝策略。例如LeetCode44求组和总数、22括号生成、473火柴拼正方形、77组合、216组合总和3、13......
  • PL20-Music-20220918
    TeacherMeghanS.RoleAStudentEistertRoleBTEACHER'SCOMMENTSeistert,thankyouforcomingtothelessonon‘’Music’’​.Youdidwellandworked......
  • 20201318李兴昕第十章学习笔记
    第十章:sh编程知识点归纳总结:本章讨论了sh编程,阐释了sh脚本和不同版本的sh。比较了sh脚本与C程序,并指出了解释语言和编译语言的区别;说明了如何编写sh脚本,包括sh变量,sh语句......
  • leetcode 6184. 统计共同度过的日子数
    leetcode6184.统计共同度过的日子数题目描述Alice和Bob计划分别去罗马开会。给你四个字符串arriveAlice,leaveAlice,arriveBob和leaveBob。Alice会在日期arr......
  • JAVA8 - 流
    packagecom.day01;importorg.junit.Test;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.List;importjava.util.stream.Stream;/***......
  • 【java8新特性】01:函数式编程及Lambda入门
    我们首先需要先了解什么是函数式编程、函数式编程是一种结构化编程范式、类似于数学函数、它关注的重点在于数据操作、或者说它所提倡的思想是做什么,而不是如何去做。自J......
  • 总结一周(2022.9.18)
    1.使用Springsecurity的时候,会默认跳到Springsecurity的界面,并且通过账户名为user,自动生成的密码来进行登录 2.在Springboot进行测试运行的时候为什么SYSUserMapper为......
  • ZLMediaKit + wvp-GB28181-pro windows部署
    1.在powershell中#国内用户推荐从同步镜像网站gitee下载gitclone--depth1https://gitee.com/xia-chu/ZLMediaKitcdZLMediaKit#千万不要忘记执行这句命令git......
  • CF1718D 题解
    设\(k\)为\(a\)中的空位数量。首先咱们转化这个“相似”的条件,发现它其实是说,笛卡尔树的结构相同。那么我们把p建笛卡尔树然后把a的数往上填。如果此时有上面小于下......