2021-06-10 课堂笔记

2021-6-10课堂笔记

  • 用户交互scanner

    工具类 java.util.Scanner,通过类来获取用户的输入

  • 顺序结构

  • 选择结构

  • 循环结构

next()
  1. 一定要读取到有效字符后才可以结束输入
  2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
  3. 只有输入有效字符后才将其后面输入的空白作为分隔符或结束符
  4. next()不能得到带有空格的字符串
nextLine()
  1. 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
  2. 可以获得空白

选择结构

  • if单选择结构
  • if双选择结构
  • if多选择结构
  • 嵌套的if结构
  • switch多选择结构

为什么输入scanner后自动import java.util.Scanner

switch多选择结构

  • 多选择结构还有一个实现方法就是switch case语句
  • switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
  • switch语句中的变量类型可以是:
    • byte、short、int或者char
    • 从Java SE 7开始,switc支持字符串String类型了
    • case标签必须为字符串常量或字面量
switch多选择结构示例
package com.kuang.struct;

public class SwitchDemo01 {
    public static void main(String[] args) {
        //case穿透
        //switch匹配一个具体的值,显示break之前的所有结果
        //每写一个case,添加break

        char grade = 'F';
        switch (grade){
            case 'A':
                System.out.println("优秀");
                break;//可选
            case 'B':
                System.out.println("良好");
                break;//可选
            case 'C':
                System.out.println("及格");
                break;//可选
            case 'D':
                System.out.println("再接再厉");
                break;//可选
            case 'E':
                System.out.println("挂科");
                break;//可选
            default:
                System.out.println("未知等级");

        }
    }
}

(scanner)创建一个扫描器,用于接收键盘数据

package com.kuang.scanner;

import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args) {
        //创建一个扫描器对象,用于接收键盘数据
        Scanner scanner = new Scanner(System.in);

        System.out.println("使用next方式接收:");

        //判断用户有没有输入字符串
        if (scanner.hasNext()){
            //使用next方式接收
                String str = scanner.next();//程序会等待用户输入完毕
            System.out.println("输入的内容为:"+str);
        }

        //凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉
        scanner.close();


    }
}
scanner类

scanner.next():空格以后内容不执行

scanner.nextLine():适用性更好,不会被空格终止,以Enter结束

一个累加小程序

package com.kuang.scanner;

import java.util.Scanner;

public class Demo05 {
    public static void main(String[] args) {
        //我们可以输入多个数字,并求其总何与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果;

        Scanner scanner = new Scanner(System.in);

        //和
        double sum = 0;
        //计算输入了多少个数字
        int m = 0;

        System.out.println("请输入数据:");
        //通过循环判断是否还有输入,并在里面对每一次进行求和、统计
        while (scanner.hasNextDouble()){
            double x = scanner.nextDouble();

            m = m + 1;//m++
            sum = sum + x;
            System.out.println("你输入了第"+m+"个数据,然后当前结果sum="+sum);
        }
        System.out.println(m +"个数的和为" + sum);
        System.out.println(m +"个数的平均数为" + (sum/m));




        scanner.close();
    }
}
效果

在这里插入图片描述

划分成绩等级

package com.kuang.struct;

import java.util.Scanner;
//If多选择结果 满足其中一个条件,就输出结果
public class IfDemo03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        /*
       if语句至多有一个else语句,else语句在所有的else if语句之后;
       if语句可以有多个else if语句,它们必须在else语句之前;
       一旦其中一个else if语句检测为true,其他的else if以及else语句都将跳过执行。
         */
        System.out.println("请输入成绩:");
        int score =scanner.nextInt();

        if (score==100){
            System.out.println("恭喜满分");
        }else if (score<100 && score>=90){
            System.out.println("A级");
        }else if (score<90 && score>=80){
            System.out.println("B级");
        }else if (score<80 && score>=70){
            System.out.println("C级");
        }else if (score<70 && score>=60){
            System.out.println("D级");
        }else if (score<60 && score>=0){
            System.out.println("不及格");
        }else{
            System.out.println("成绩不合法");
        }


        scanner.close();
    }
}

循环结构

  • while循环
  • do…while循环
  • for循环,在java5中引入了一种主要用于数组的增强型for循环
while循环
  • 结构

    while(布尔表达式){
    //循环内容
    }
    
  • 只要布尔表达式为true,循环会一直执行

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

  • 少数情况需要循环一直执行,比如服务器请求响应监听等

  • 循环条件一直为true会造成无限循环【死循环】,正常的业务编程应尽量避免死循环

  • 思考:计算1+2+3+…+100=?

    package com.kuang.struct;
    
    public class WhileDemo03 {
        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);
        }
    }
    
  • while示例1

    package com.kuang.struct;
    
    public class WhileDemo01 {
        public static void main(String[] args) {
    
            //输出1~100
            //关于为什么i<100,会输出100?
            //输出i最后一个数为100,输出i++最后一个数为99
            int i = 0;
            while (i<100){
                i++;
                System.out.println(i);
            }
        }
    }
    
do…while循环
  • 结构

    do {
    //代码语句
    }while(布尔表达式)
    
  • 对于while语句,如果不满足条件不能进入循环。但有时即使不满足条件,我们也需要它至少执行一次

  • while和do…while的区别

    • while先判断后执行,dowhile是先执行后判断!

      package com.kuang.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);
          }
      }
      
    • do…while总是保证循环至少被执行一次

for循环 非常重要!!!
  • 语句结构

    for(初始化;布尔表达式;更新){
    //代码语句
    }
    
  • 虽然所有循环都可以用while或者dowhile表示,但java提供了另一种语句——for循环,使一些循环结构变得更加简单

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

  • for循环执行的次数是在执行前就确定的

  • 练习题

    • 计算0到100之间的奇数和偶数的和

      package com.kuang.struct;
      
      public class ForDemo02 {
          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){//模运算,不能被2整除即为奇数
                      oddsum +=i;//oddsum = oddsum +i;
                  }else{
                      evensum +=i;
                  }
                  
              }
              System.out.println("奇数的和:"+oddsum);
              System.out.println("偶数的和:"+evensum);
          }
      }
      
    • 用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个

      package com.kuang.struct;
      
      public class ForDemo03 {
          public static void main(String[] args) {
              //练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
      
              for (int i = 0; i <= 1000; i++) {
                  if (i%5==0){
                      System.out.print(i+"\t");//   \t相当与tab
                  }
                  if (i%(5*3)==0){//每行3个 3个数字后换行
                      System.out.println();
                      //System.out.println("\n");
                  }
      
              }
              //System.out.println();   输出完会换行
              //System.out.print();   输出完不会换行
          }
      }
      
    • 打印九九乘法表

      package com.kuang.struct;
      
      public class ForDemo04 {
          public static void main(String[] args) {
              //练习3:打印九九乘法表
              //1、我们先打印第一列
              //2、我们把固定的1再用循环包起来
              //3、去掉重复项 i<=j
              //4、调整样式:每输出一个tab,
      
              for (int j = 0; j <= 9; j++) {
                  for (int i = 1; i <= j; i++) {
                      System.out.print(j+"*"+i+"="+(j*i)+"\t");
              }
                  System.out.println();
                  //或者System.out.println("\n");
              }
          }
      }
      
  • 快捷输入100.for快速输入for (int i =1;i<=100;i++)

小于等于必须连起来写,比如<=而不是< =;

哪一个语句输出完换行?

//System.out.println(); 输出完会换行

//System.out.print(); 输出完不会换行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值