接受用户输入
引用Scanner类
定义语句
Scanner input = new Scanner(System.in)
数据类型 变量 = input.不同类型的接收值
input.next()接收输入的所有内容
input.nextLine()接收输入的一行内容
当同时出现的时候,例如输入abc然后回车会出现只有一句执行的情况,这是因为输入的语句
同时满足了两个语句的条件,所以不要同时用。
区别:
next接收不了空格,以回车和空格作为结束。必须输入真正有效字符才算结束,如果输入的只
有空格则不会结束。
nextLine只会以回车作为结束
执行结构
基本结构(三种):顺序结构、分支结构、循环结构
顺序结构:按照语句出现的顺序执行操作
分支结构:根据条件成立与否来执行操作
循环结构:是一种重复结构,如果条件成立,会一直重复执行某一循环体,直到出现不满足的条
件为止。
分支结构
if条件语句:
依据条件判断后再进行处理。
switch语句:
表达式的返回值必须是以下几种类型之一:int,byte,char,short,String。
case子句中的取值必须是常量且不同。
default子句可以选择不写,不写的话如果没有满足的执行条件则直接跳过。
break语句用来跳出switch语句块;如果没有写break则依次往下执行,直到遇见break。
这种情况一般用来处理不同的case子语句中的代码相同的情况。
循环语句
for循环 while循环 do/while循环
while循环
符合条件,循环继续执行;否则,循环退出
特点:先判断再执行
使用时的步骤:
分析循环条件和循环操作
套用while语法写出代码
检查循环是否能够退出
do/while循环
先执行一遍循环操作,符合条件,循环继续执行;否则,循环退出
特点:先执行,再判断
while循环和do/while循环的区别
while:先判断条件,如果条件满足,再执行循环操作
do/while:先执行一遍循环操作,然后再判读条件,如果条件满足,继续执行循环操作。
for循环
for(定义循环变量;判断循环条件;更新循环变量){ }
循环嵌套图形打印
外层循环控制行数,内层循环控制列数
break和continue语句
break适用于终止本轮所有次数的循环。也就是说直接跳出循环不再执行。
continue是用于终止本轮本次循环。也就是说循环中continue之后的代码不执行,进入到下一次循环的
入口判断。
如何退出多重循环
给循环命名 比如cx:for(),则需要跳出多重循环时只需要break cx;即可
判断用户输入类型
在接收输入之前判断输入的类型是否正确
input.hasNext+类型(Int 、Boolean等)
数组
数组是相同数据类型的多个数据的容器
元素按照线性顺序排列(一个跟一个顺序排列)
创建格式
1.数据类型[] 数组名称 = new 数据类型[数组长度]
2.数据类型[] 数组名称 = {数组内容1,数组内容2,数组内容3,...数组内容n,}
如何获取数组的长度:数组名称.length
不常用数组定义格式:
1.创建数组,不初始化
格式: 数据类型[] 数组名;
之后的初始化只能通过new int[]类似这种的方式进行初始化
2.创建数组,并指定数组中的内容
格式:数据类型[] 数组名称 = new 数据类型[ ]{内容1,内容2.。。。内容n}
数组常见问题
1.数组下标越界问题。
2.空指针问题 。
最大最小值
1. 创建一个变量,用于存储遍历数组时发现的最大值
2.循环取出数组中的每一个内容,从1开始
3.将数组中的每一个内容与n比较,如果比n打,则将n的值赋值为这个较大的值。
冒泡排序
升序排列的口诀:
N个数字来排队
两两相比小靠前,
外层 循环length-1
内层循环length-i-1
降序排序的口诀:
N个数字来排队
两两相比大靠前,
外层 循环length-1
内层循环length-i-1
二分查找(折半查找)
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,二分
查找要求数组数据必须采用顺 序存储结构有序排列。
1.确定查找的范围 最小-最大
2.计算中间的下标(最小+最大)/2
3.比较中间下标,中间数据较大,则最大下标等于中间下标-1
比较中间下标,中间数据较小,则最小下标等于中间下标+1
当最小下标大于最大下标时,说明数据时不存在的