第一天的笔记发现丢失了,我从第二天开始,从<运算符>to<数组>的内容
day02
运算符分类;
算术运算符
赋值运算符
关系运算符
逻辑运算符
三元运算符
算数运算符:
+,-,*,/,%,++,--
整数相除只能得到整数。想要得到小数,就必须有浮点数参与运算
%:用于获取两个数相除时候的余数
字符参与运算就是拿字符的ASCII码进行运算
++,--:
单独使用的时候,++,--放在变量前面或者后面结果一样
++在后面,先拿变量做操作,然后变量在++
++在前面,先变量++,然后在拿变量做操作
注意:拓展的赋值运算符,隐含了强制转换
关系运算符:
==,!=,>,>=,<,<=
逻辑运算符:用于连接关系表达式
&,|,^,!
&:有假则假
|:有真则真
!:事物的向反面
^:相同为false,不同为true
&&与&的区别:
&是左右两边都需要计算
&&左边为false,右边不执行
三元运算符:
关系表达式?表达式1:表达式2
执行流程:
A:计算关系表达式的值,看是true还是false
B:如果是true,表达式1就是结果
如果是false,表达式2就是结果
如何实现键盘录入数据?目前我只能使用JDK提供的类Scanner
步骤:
A:导包
import java.util.Scanner;
在一个类中顺序:package>import>class
B:创建键盘录入对象
Scanner sc = new Scanner(System.in);
C:接受数据
int i = sc.nextInt();
案例:求和
import java.util.Scanner;
public class Demo01 {
public static void main(String[] arge){
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数");
int x = sc.nextInt();
System.out.println("请输入第二个整数");
int y = sc.nextInt();
int sum = x + y;
System.out.println("sum = " + sum);
}
}
案例:最大值
import java.util.Scanner;
public class Demo01 {
public static void main(String[] arge){
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数");
int x = sc.nextInt();
System.out.println("请输入第二个整数");
int y = sc.nextInt();
System.out.println("请输入第三个整数");
int z = sc.nextInt();
int max = x > y ? x : y;
max = max > z ? max :z;
System.out.println("最大值是" + max);
}
}
day03
if语句有三种格式:
if语句格式1:
if(关系表达式){
语句体;
}
执行流程:
A:首先计算关系表达式的值,是true还是false
B:如果是true,就执行语句体
C:如果是false,就不执行语句体
file:///C:/Users/WangJian/AppData/Local/Temp/enhtmlclip/Image.png
import java.util.Scanner;
public class Demo01{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数");
int a = sc.nextInt:
if(a % 2 == 1){
System.out.println("这个数是奇数");
}else{
System.out.println("这个数是偶数");
}
}
}
if语句格式2:
if(关系表达式){
语句体;
}else{
语句体2;
}
执行流程:
A:首先计算关系表达式的值,是true还是false
B:如果是true,就执行语句体
C:如果是false,就执行语句体2
file:///C:/Users/WangJian/AppData/Local/Temp/enhtmlclip/Image(1).png
if语句格式3:
if(关系表达式1) {
语句体1;
}else if (关系表达式2) {
语句体2;
}
…
else {
语句体n+1;
}
执行流程
A.首先判断关系表达式1看其结果是true还是false
B.如果是true就执行语句体1
C.如果是false就继续判断关系表达式2看其结果是true还是false
D.如果是true就执行语句体2
E.如果是false就继续判断关系表达式…看其结果是true还是false
…
F.如果没有任何关系表达式为true,就执行语句体n+1
file:///C:/Users/WangJian/AppData/Local/Temp/enhtmlclip/Image(2).png
import java.util.Scanner;
public class Demo01{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生成绩");
int a = sc.nextInt();
if(a <= 0 || a >= 100){
System.out.println("你输入有误");
}else if(a >= 90 ){
System.out.println("优秀");
}else if(a >= 80 ){
System.out.println("优秀");
}else if(a >= 70 ){
System.out.println("优秀");
}else if(a >= 60 ){
System.out.println("优秀");
}else{
System.out.println("不及格");
}
}
}
switch表示这是switch语句
表达式的取值:byte,short,int,char
JDK5以后可以是枚举
JDK7以后可以是String
case后面跟的是要和表达式进行比较的值
语句体部分可以是一条或多条语句
break表示中断,结束的意思,可以结束switch语句
default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
执行流程:
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
file:///C:/Users/WangJian/AppData/Local/Temp/enhtmlclip/Image(3).png
import java.util.Scanner;
public class Demo01{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字");
int a = sc.nextInt();
switch(a){
case 1:
System.out.println("今天星期一");
break;
case 2:
System.out.println("今天星期二");
break;
case 3:
System.out.println("今天星期三");
break;
case 4:
System.out.println("今天星期四");
break;
case 5:
System.out.println("今天星期五");
break;
case 6:
System.out.println("今天星期六");
break;
case 7:
System.out.println("今天星期日");
break;
default:
System.out.println("输入有误");
break;
}
For循环语句的格式:
for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
}
执行流程:
A:执行初始化语句
B:执行判断条件语句,看其结果是true还是false
如果是false,循环结束。
如果是true,继续执行。
C:执行循环体语句
D:执行控制条件语句
E:回到B继续
file:///C:/Users/WangJian/AppData/Local/Temp/enhtmlclip/Image(4).png
while循环的格式
do {
循环体语句;
}while((判断条件语句);
扩展格式
初始化语句;
do {
循环体语句;
控制条件语句;
} while((判断条件语句);
file:///C:/Users/WangJian/AppData/Local/Temp/enhtmlclip/Image(5).png
day04
动态初始化:
数据类型[] 数组名 = new 数据类型[数组长度]
int[] arr = new int[5]
Java中的内存分配:
栈(存储的是局部变量)
堆(存储的是new出来的对象)
方法区(面向对象)
file:///C:/Users/WangJian/AppData/Local/Temp/enhtmlclip/Java中的内存分配图解.bmp c
静态初始化:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2.......}
数组中的元素个数:length:arr.length
遍历数组:
public class Demo01{
public static void main(String[] args) {
int[] arr = {12,23,45,67,89};
for(int a = 0;a < arr.length;a++){
System.out.println(arr[a]);
}
}
}
二维数组:其实就是元素为一堆数组的数组
定义格式:
数据类型[][] 数组名;
数据类型 数组名[][];
数据类型[] 数组名[];
初始化:
A:动态初始化
数据类型[][] 数组名 = new 数据类型[m][n];
m表示的是二维数组中一维数组个数
n表示一维数组中的元素个数
B:静态初始化
数据类型[][] 数组名 = new 数据类型[][]{{元素...}{元素...}...}
|
|