PART1:变量与数据类型

  1. Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间。
    内存分配图示

    • 整数默认:int
    • 小数默认:double
  2. 数据类型图示1
    数据类型图示2

  3. 使用变量注意事项:

    • 作用域:变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量。
    • 初始化值:没有初始化值不能直接使用。
    • 在一行上建议只定义一个变量:可以定义多个,但是不建议。
    • +是一个运算符, 我们应该能够看懂,做数据的加法。
    • boolean类型不能转换为其他的数据类型。
    • 默认转换:byte,short,char—int—long—float—double
      • byte,short,char相互之间不转换,他们参与运算首先转换为int类型
    • 强制转换:目标类型 变量名=(目标类型)(被转换的数据);

面试题:
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的呢?为什么呢?

思考题:
byte b = 130;有没有问题?如果我想让赋值正确,可以怎么做?结果是多少呢?
练习:byte b = 300;

请写出下列程序结果
System.out.println(’a’);
System.out.println(’a’+1);

System.out.println(”hello”+’a’+1);
System.out.println(’a’+1+”hello”);
System.out.println(”5+5=”+5+5);
System.out.println(5+5+”=5+5”);

PART 2:算术、赋值运算符:

1.算术运算符:
算术运算符图示
+,-,*,/都是比较简单的操作,简单演示即可
+的几种作用:

  • 加法
  • 正数
  • 字符串连接符
    除法的时候要注意一个问题:
  • 整数相除,只能得到整数
  • 要想得到小数,可以*1.0

/和%的区别:
++和--的应用

  • 单独使用效果相同
  • 参与运算使用,在操作数的前后效果不同

符号:

  • = , +=, -=, *=, /=, %=
  • =为基本的赋值运算符,其他的为扩展的赋值运算符

如下操作写出结果
int a,b; a = b = 10;
System.out.println(a); System.out.println(b);
int a = 10; a += 20; System.out.println(a);

面试题
short s=1, s = s+1; short s=1, s+=1;
上面两个代码有没有问题,如果有,那里有问题

PART 3:关系、逻辑、位运算符

关系运算符:

  • 注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
  • 注2:比较运算符“==”不能误写成“=”。

关系运算符图示

逻辑运算符:

  • 逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 。
  • “&”和“&&”的区别:
    • 单&时,左边无论真假,右边都进行运算;
    • 双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
    • “|”和“||”的区别同理,双或时,左边为真,右边不参与运算。

逻辑运算符图示

位运算符:

  • 位运算是直接对二进制进行运算。
    位运算符图示

三目运算符:

  • 格式:(关系表达式)?表达式1:表达式2;
    • 如果条件为true,运算后的结果是表达式1;
    • 如果条件为false,运算后的结果是表达式2;
  • 示例:
    int x=3,y=4,z;
    z = (x>y)?x:y;//z变量存储的就是两个数的大数。
    

条件运算符练习:

  • 获取两个整数中的最大值
  • 获取三个整数中的最大值
  • 比较两个整数是否相同

注意:

  • 目前在写案例的时候,如果我没有说明数据是什么类型的,默认是int类型的。

PART 4:Scanner if语句

键盘录入数据概述

  • 我们目前在写程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,所以,我准备把数据改进为键盘录入,提高程序的灵活性。

如何实现键盘录入数据呢?(目前先记住使用)

  • 导包(位置放到class定义的上面):import java.util.Scanner;
  • 创建对象:Scanner sc = new Scanner(System.in);
  • 接收数据:int x = sc.nextInt();

流程控制语句:

  • 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。

流程控制语句分类

  1. 顺序结构
  2. 选择结构
  3. 循环结构

顺序结构:

  • 是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,自上而下,依次执行,程序中大多数的代码都是这样执行的。
  • 总的来说:写在前面的先执行,写在后面的后执行。

顺序结构图示

选择结构:

也被称为分支结构。
选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
Java语言提供了两种选择结构语句

  • if语句
  • switch语句

if语句:

if语句有三种格式

if语句第一种格式:

if(关系表达式) {
    语句体
}

执行流程

  • 首先判断关系表达式看其结果是true还是false
  • 如果是true就执行语句体
  • 如果是false就不执行语句体

if语句图1

注意事项:

  • 关系表达式无论简单还是复杂,结果必须是boolean类型
  • if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。建议永远不要省略。
  • 一般来说:有左大括号就没有分号,有分号就没有左大括号

if语句第二种格式:

if(关系表达式) {
    语句体1;
}else {
    语句体2;
}

执行流程

  • 首先判断关系表达式看其结果是true还是false
  • 如果是true就执行语句体1
  • 如果是false就执行语句体2

if语句图2

我们前面讲解过三元运算符,它根据比较判断后,给出的也是两个结果,所以,这种情况和if语句的第二种格式很相似,他们在某些情况下应该是可以相互转换的。

if语句第二种格式和三元运算符

  • 三元运算符的操作都可以使用if语句改进,反之不成立
  • 什么时候不成立呢?
    • 当if语句控制的语句体是一条输出语句的时候,就不成立。因为三元运算符是一个运算符,必须要求有一个结果返回。
    • 而输出语句却不能作为一个返回结果。

if语句第三种格式:

if(关系表达式1) {
    语句体1;
}else  if (关系表达式2) {
    语句体2;
}
// ...
else {
    语句体n+1;
}

执行流程

  • 首先判断关系表达式1看其结果是true还是false
  • 如果是true就执行语句体1
  • 如果是false就继续判断关系表达式2看其结果是true还是false
  • 如果是true就执行语句体2
  • 如果是false就继续判断关系表达式…看其结果是true还是false
  • 如果没有任何关系表达式为true,就执行语句体n+1。

if语句图3

PART 5:switch语句 for循环

switch语句格式:

switch(表达式) {
    case 值1:
        语句体1;
        break;
    case 值2:
        语句体2;
        break;
    // ...
    default:
        语句体n+1;
        break;
}

格式解释

  • switch表示这是switch语句
  • 表达式的取值:byte,short,int,char
  • JDK5以后可以是枚举
  • JDK7以后可以是String
  • case后面跟的是要和表达式进行比较的值
  • 语句体部分可以是一条或多条语句
  • break表示中断,结束的意思,可以结束switch语句
  • default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。

执行流程

  • 首先计算出表达式的值
  • 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
  • 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

switch语句图

注意事项

  • case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的。
  • default可以省略吗?
    • 可以省略。一般不建议。除非判断的值是固定的(单选题)。
  • break可以省略吗?
    • 可以省略,一般不建议。否则结果可能不是你想要的。
  • default的位置一定要在最后吗?
    • 可以出现在switch语句任意位置。
  • switch语句的结束条件
    • 遇到break
    • 执行到程序的末尾

switch语句练习:

  • 模拟做单项选择题,根据你的选择,给出对应的答案。(表达式是字符的情况)
  • 键盘录入字符串,根据给定的字符串,来输出你选择的字符串是什么?(表达式是字符串的情况)
  • 用switch语句实现键盘录入月份,输出对应的季节
  • 看程序写结果

选择结构(各自使用场景):

  • 在做判断的时候,我们有两种选择,if语句和switch语句,那么,我们到底该如何选择使用那种语句呢?
  • if语句使用场景:
    • 针对结果是boolean类型的判断
    • 针对一个范围的判断
    • 针对几个常量值的判断
  • switch语句使用场景:
    • 针对几个常量值的判断

循环结构:

  • 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

循环语句的组成

  • 初始化语句:
    • 一条或者多条语句,这些语句完成一些初始化操作。
  • 判断条件语句:
    • 这是一个boolean表达式,这个表达式能决定是否执行循环体。
  • 循环体语句:
    • 这个部分是循环体语句,也就是我们要多次做的事情。
  • 控制条件语句:
    • 这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。

for循环语句格式:

for(初始化语句;判断条件语句;控制条件语句) {
    循环体语句;
}

执行流程

  • A:执行初始化语句
  • B:执行判断条件语句,看其结果是true还是false
    • 如果是false,循环结束。
    • 如果是true,继续执行。
  • C:执行循环体语句
  • D:执行控制条件语句
  • E:回到B继续

for循环图

注意事项

  • 判断条件语句的结果是一个boolean类型。
  • 循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
  • 一般来说:有左大括号就没有分号,有分号就没有左大括号。

for循环练习:

  • 请在控制台输出数据1-10。
  • 请在控制台输出数据10-1。
  • 求出1-10之间数据之和。
  • 求出1-100之间偶数和。
  • 求出1-100之间奇数和。
  • 求5的阶乘。
  • 在控制台输出所有的”水仙花数”。
  • 统计”水仙花数”共有多少个。
  • 请在控制台输出满足如下条件的五位数:
    • 个位等于万位。
    • 十位等于千位。
    • 个位+十位+千位+万位=百位。
  • 请统计1-1000之间同时满足如下

条件的数据有多少个:

  • 对3整除余2
  • 对5整除余3
  • 对7整除余2

选择结构(各自使用场景):

  • 在做判断的时候,我们有两种选择,if语句和switch语句,那么,我们到底该如何选择使用那种语句呢?
  • if语句使用场景:
    • 针对结果是boolean类型的判断
    • 针对一个范围的判断
    • 针对几个常量值的判断
  • switch语句使用场景:
    • 针对几个常量值的判断

循环结构:

  • 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

循环语句的组成

  • 初始化语句:
    • 一条或者多条语句,这些语句完成一些初始化操作。
  • 判断条件语句:
    • 这是一个boolean表达式,这个表达式能决定是否执行循环体。
  • 循环体语句:
    • 这个部分是循环体语句,也就是我们要多次做的事情。
  • 控制条件语句:
    • 这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。

for循环语句格式:

for(初始化语句; 判断条件语句; 控制条件语句) {
    循环体语句;
}

执行流程

  • A: 执行初始化语句
  • B: 执行判断条件语句,看其结果是true还是false
    • 如果是false,循环结束。
    • 如果是true,继续执行。
  • C: 执行循环体语句
  • D: 执行控制条件语句
  • E: 回到B继续

注意事项

  • 判断条件语句的结果是一个boolean类型。
  • 循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
  • 一般来说:有左大括号就没有分号,有分号就没有左大括号。

for循环练习:

  • 请在控制台输出数据1-10。
  • 请在控制台输出数据10-1。
  • 求出1-10之间数据之和。
  • 求出1-100之间偶数和。
  • 求出1-100之间奇数和。
  • 求5的阶乘。
  • 在控制台输出所有的”水仙花数”。
  • 统计”水仙花数”共有多少个。
  • 请在控制台输出满足如下条件的五位数:
    • 个位等于万位。
    • 十位等于千位。
    • 个位+十位+千位+万位=百位。
  • 请统计1-1000之间同时满足如下条件的数据有多少个:
    • 对3整除余2。
    • 对5整除余3。
    • 对7整除余2。

点赞评论加关注,下期出练习答案

posted on 2024-07-31 19:56  森森xl  阅读(70)  评论(0编辑  收藏  举报