day04

Scanner对象(用户交互)

基本语法:

Scanner s = new Scanner(System.in);

通过Scanner类的next()与nextline()方法获取输入的字符串,再读取我们一般需要使用hasNext()与hasNextline()判断是否还有输入的数据

  • next():

​ 一定要读取到有效的字符后才可以结束输入。

​ 对输入有效字符串之前遇到的空白,next()方法会自动将其去掉

​ 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符

​ next()不能得到带有空格的字符串

  • nextLine():

​ 以Enter为结束符,也就是说,nextLine()方法返回的是输入回车之前的所有的字符

​ 可以获得空白

选择结构

if单选择结构

很多时候我们需要去判断一个东西是否可行,然后我们再去执行,这样一个程序用if语句来表示

语法

if (布尔表达式){
    //如果布尔表达式为true将执行的语句
}

if双选择结构

语法

if (布尔表达式){
    //如果布尔表达式的值为true
}else{
    //如果布尔表达式的值为flase
}

if多选择结构

语法

if (布尔表达式 1){
    //如果布尔表达式 1的值为true
}else if(布尔表达式 2){
    //如果布尔表达式 2的值为true
}else if(布尔表达式 3{
    //如果布尔表达式 3的值为true
}else{
    //如果以上的布尔表达式都不为true
}

switch多选择结构

多选择结构还有一个实现方式就是Switch case语句

Switch case语句判断一个变量与一系列值中的某一个值是否相等,每个值称为一个分支

Switch语句中的变量可以是:

  • byte,short,int,char
  • Switch 支持字符串String类型了
  • 同时,case标签必须为字符串常量或者字面量
  • 语法
switch(expression){
    case value :
        //语句
        break;//可选
    case value:
        //语句
        break;//可选
        // 可以有无数个case语句
    default//语句
        //语句
}

IDEA反编译(看源码)

  • 先在project structure中找到路径打开复制
  • 再打开open in explorer中对应的文件位置,粘贴刚刚复制的,返回刚刚的IDEA即可看到01文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NJtQFnDD-1632315613723)(C:\Users\Administrator.SC-201906191125\AppData\Roaming\Typora\typora-user-images\image-20210922092535089.png)]

循环结构

while循环

结构

while(布尔表达式){
    //循环内容
}
  • 只要布尔值为True,循环就会一直执行下去
  • 我们需要一个让表达式失效的方式来结束循环

do while循环

do{
    //代码语句
}while(布尔表达式);

while与do while的区别

  • while先判断后执行,do while是先执行后判断
  • do while至少被执行一次

for循环

  • for循环语句是支持迭代的一种通用结构,是最有效的,最灵活的循环结构
  • for循环执行的次数是执行前就确定的,格式如下:
for(初始化;布尔表达式,更新){
    //代码语句
}
***100.for  //自动生成for循环!***
for(;;;)//死循环

注意

print 输出完不会换行

println输出完会换行

增强for循环

  • 这里先了解,之后数组会重点使用,
  • java5引入了一种主要用于数组或集合的增强型for循环
  • 格式
for(声明语句:表达式)
{
//代码句子
}
  • 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等
  • 表达式;表达式是要访问数组名,或者是返回值为数组的方法

方法

什么是方法

我直接把方法理解成函数

组成

方法包含一个方法头和方法体

修饰符 返回值类型 方法名(参数类型 参数名){
    ...
    方法体
    ...
    return 返回值;
}

方法调用

  • 调用方法:对象名.方法名(实参列表)
  • java支持两种调用方法的方式,根据方法上是否返回值来选择。
  • 当方法返回一个值时,方法调用通常被当做一个值。例如:
int larger = max(30,40);
  • 如果方法返回值是void,方法调用的一定是一条语句
System.out.println("Hello,xiatian")//return 0:终止方法

java是值传递

方法的重载

重载就是在一个类中,有相同的函数名称,但是形参不同的函数。

方法重载的规则:

  • 方法名称必须相同
  • 参数列表必须不同(个数不同,或类型不同,参数排列顺序不同等)
  • 方法的返回值类型可以相同也可以不同
  • 仅仅返回值类型不同不足以成为方法的重载

命令行传参

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-018Sx3o3-1632315613725)(C:\Users\Administrator.SC-201906191125\AppData\Roaming\Typora\typora-user-images\image-20210922194258427.png)]

可变参数

  • jdk1.5开始,java支持传递同类型的可变参数给一个方法
  • 在方法的声明中,在指定参数类型后加一个省略号(…)
  • 一个方法中只能指定一个可变参数,他必须是方法的最后一个参数,任何普通的参数必须在他之前声明

递归

  • 递归头:什么时候不调用自身方法,如果没有头,将陷入死循环
  • 递归体:什么时候需要调用自身方法

数组

  • 首先必须声明数组变量,才能在程序中使用数组
dataType[] arrayRefVar;首选方法
或
dataType arrayRefVar[];//效果相同,但不是首选方法
  • Java语言使用new操作符来创建数组
dataType[] arrayRefVar = new dataType[arraySize];
  • 数组元素是通过索引来访问的,数组下标从开始

数组的特点

  • 其长度是确定的,数组一旦被创建,他的大小不允许被改变
  • 其元素必须是相同的类型,不允许出现混合类型
  • 数组中元素可以是任何数据类型,包括基本类型和引用类型
  • 数组变量属于引用类型,数组也可以看成对象,数组中的每个元素相当于该对象的成员变量
  • 数组本身就是对象,java中对象是在堆中的,因此数组中无论保存原始类型还是其他对象类型,数组对象本身是在堆中
  • 数组名.Length:获取数组长度

三种初始化

静态初始化

int[] a = {1,2,3,4,5,6};
Man[] mans = {new Man(1,1),new Man(2,2)};

动态初始化

int[] a = new int[10];
a[9]=1;
a[8]=7;

数组默认初始化:

数组是引用类型,他的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例额变量同样的方式被隐式初始化

在堆中**

  • 数组名.Length:获取数组长度

三种初始化

静态初始化

int[] a = {1,2,3,4,5,6};
Man[] mans = {new Man(1,1),new Man(2,2)};

动态初始化

int[] a = new int[10];
a[9]=1;
a[8]=7;

数组默认初始化:

数组是引用类型,他的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例额变量同样的方式被隐式初始化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值