# 键盘录入数据

能够从控制台接收字符串、整数、小数数据

package _05键盘录入;
// 1. 导入键盘录入的包
import java.util.Scanner;
public class Demo1 {
    public static void main(String[] args) {
        //2. 创建对象
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入QQ号码:");
        int qqNum = sc.nextInt();//sc.nextInt() 通知用户输入一个整数,需要你定一个变量去存储
        System.out.println(qqNum);
        //3. 通知用户输入信息
        System.out.println("请输入QQ密码:");
        String pwd = sc.next();//sc.next() 通知用户输入一个字符串,需要你定一个变量去存储
        System.out.println(pwd);
    }
}

# 运算符

# 算数运算符

  • 加 - 减 * 乘 / 除 % 取余
    注意事项:
  • 整数计算的结果还是整数,如果要出现小数需要有小数参与运算
System.out.println(6/4); // 1.5
System.out.println(3 + 3.0); // 6.0
// 整数相除,向下取整
System.out.println(10 / 3); // 3
System.out.println(10 / 3.0); // 3.3333333333333335
  • byte、short、char 在运算时会自动提升为 int 类型,所以结果需要使用 int 接收
// byte, char\short类型的数据在运算的时候是会自动提升至int类型。
byte b1 = 1;
byte b2 = 2;
//使用int类型的变量去保存结果
int b3 = b1 + b2;  // 结果是int类型 变量名 =  b1提升至int类型 + b2提升至int类型
//使用强制类型转换
byte b4 = (byte)(b1 + b2);  // 结果是int类型 变量名 =  b1提升至int类型 + b2提升至int类型
  • 混合运算中,仍然是先乘除、后加减。可以使用()改变运算顺序

# 字符的+操作

  1. 如果+用于数值运算的时候是加法功能
System.out.println(1 + 2); // 3
  1. 每个字符底层都是一个数字,字符在参与+操作时,会使用字符底层的数字进行加法运算
System.out.println(1 + 'a'); //98
  1. 如果+号是与字符串进行使用,+号就会变成一个拼接符号。任何数据与字符串使用+,结果字符串类型。
System.out.println(1 + "a"); //"1a"

# 赋值运算符

赋值运算符有:= 等于(赋值) +=加等 -=减等 *=乘等 /=除等 %=取余等。

扩展的赋值运算符中包含了隐含的类型转换:

byte a = 10;
a = a + 10; //编译错误,结果应该是int类型
a += 10;    //正确,相当于:a = (byte)(a + 10);

# 自增、自减运算符

自增自减运算符:
++ 加加运算符 -- 减减运算符

运算方式:
++前置:先加一,后使用
后使用后置++:先使用,后加一

# 关系运算符

比较运算符大体分为以下几种:
==等于 !=不等于 >大于 <小于 >=大于等于 <=小于等于。

注意:

  • 等于号是== , 千万不要把== 写成 = = 是赋值运算符,==是比较运算符。
  • 字符串是否相等不用 == ,有其他方法

# 逻辑运算符

常用的逻辑运算符有:&& 与 || 或 ! 非。

&&与:a && b ,如果 a 和 b 都是 true,则结果为 true, 否则结果为 false。短路效果:如果 a 已经是 false,则 b 不执行。
|| 或:a || b , 如果 a 和 b 都是 false,则结果为 false,否则结果为 true。短路效果:如果 a 已经是 true,则 b 不执行。
! 取反:! a,如果 a 是 true,则结果为 false ,如果 a 是 false,则结果为 true 。

# 三元运算符

格式:关系表达式(比较运算符) ? 表达式 1 : 表达式 2;

运算方式:首先计算关系表达式的值 如果值为 true,表达式 1 的值就是运算结果;如果值为 false, 表达式 2 的值就是运算结果。

# 流程控制语句

# if 语句

格式:

if(布尔表达式1){
  语句体1;
} else if (布尔表达式2) {
  语句2;
} ...
else{
  语句体n;
}

# switch 语句

格式:

switch(变量) {
    case1:
	语句体1;
	break;
    case2:
	语句体2;
	break;default:
	语句体n+1;
	[break;]
}
  • 变量:类型可以为 byte、short、int、char,String, 枚举(以后学)。
  • case:后面就是一个常量 break:表示中断,结束的意思,用来结束 switch 语句。
  • default:表示所有情况都不匹配的时候,就执行这个内容。

switch 穿透现象:
当 case 中的语句执行完毕,而没有 break 时, 程序会无条件的执行后续的 case 或 default 中的语句, 直到遇到 break 语句或整个 switch 语句结束为止。