一、Scanner控制台输入
Scanner类 Scanner类是属于引用数据类型, 我们需要先了解一下引用数据类型 ①引用数据类型的使用 与定义基本数据类型不同,引用数据类型的变量、定义和赋值有一个固定的格式 数据类型 自定义变量名 = new 数据类型(); ② 每种引用数据类型都有其功能,我们可以使用这些功能 变量名.方法名(); // .调用 ③如何使用Scanner 作用: 它可以接收用户在控制台中输入的值 步骤1: 导包 import java.util.Scanner; 步骤2: 创建一个扫描器 Scanner sc = new Scanner(System.in); 步骤3: 调用方法 int a =sc.nextInt(); //获取整数 double b= sc.nextDouble();//获取小数 String name=sc.next();//获取字符串 使用示例: package com.scanner; import java.util.Scanner; public class Demo { public static void main(String[] args) { // 创建扫描器 Scanner sc=new Scanner(System.in); System.out.println(“请输入整数:”); int a = sc.nextInt(); System.out.println(“请输入小数:”); double b = sc.nextDouble(); System.out.println(“请输入字符串”); String c=sc.next(); //遇到空格停止扫描 System.out.println(a); System.out.println(b); System.out.println©; } }二、流程控制 1、顺序语句 程序从main方法开始,从上往下执行,一句一句执行,每句代码都会执行1次。 2、分支语句 满足条件的代码执行,不满足条件的代码不执行 if语句 switch语句 (一)if语句 注意事项: 条件表达式的结果必须是boolean类型 如果语句体只有1条语句,这个大花括号可以省略 如果是多条语句,一定不能省略,建议不论是1条语句还是多条都添加 大花括号增强代码的可读性 ①if 语法: if(条件表达式){ 语句体; }执行流程: 如果表达式结果为true,则执行语句体 否则不执行语句体 ②if…else 语法: if(条件表达式){ 语句体1; }else{语句体2; }执行流程: 如果条件表达式结果为true,则执行语句体1, 否则执行语句体2 ③if…else if…else 语法: if(条件表达式1){ 语句体1; }else if(条件表达式2){ 语句体2; }else if(条件表达式3){ 语句体3; }else if(条件表达式4){ 语句体4; }else{其他; //如果都不满足则执行else }执行流程: 哪一个条件表达式为true则就执行哪个语句体都为false,则执行else中的语句 (二)switch语句 switch语句只能针对某个表达式的值作出判断,从而决定程序执行哪一段代码。 涉及到的单词: switch case 情况 break 中断,结束switch default 默认 注意事项: ①switch语句的表达式的数据类型只能是 JDK1.0-1.4 接受 byte short int char JDK1.5 接受 byte short int char enum(枚举) JDK1.7 接受 byte short int char enum String ②防止case穿透 在使用switch语句的过程中,如果有多个case条件后面的语句体是一样的,我们可以写1次即可。 switch语句,break防止穿透 switch语句的结束条件: 情况1:遇到了break 情况2: 执行到最后1个反大花括号 语法: switch(表达式){ case 常量值1: 要执行的语句体1; break; case 常量值2: 要执行的语句体2; break; case 常量值3: 要执行的语句体3; break; … default: 要执行的默认语句体; break; } 执行流程: 表达式 和 case 后面的常量值进行比较,和哪个case的常量值相等,就执行哪个case的语句体,遇到break结束。 (三)循环语句 for循环 while循环 do…while循环 foreach
三、心得 在调用Scanner类后,定义变量值需要调用扫描器的next方法,如: int number = scanner. nextInt(); double price = scanner. nextDouble(); String name = scanner. next(); 如果是布尔类型Boolean flag = scanner.nextBoolean(); if语句中的条件表达式默认为true