流程控制和方法
1.1 用户交互Scanner
- 基本语法
Scanner s=new Scanner(System.in);
- 通过Scanner类的next()与nextLine()方法获取用户的字符串,读取前一般用hasNext()与hasNextLine()判断是否还有输入的数据
if(s.hasNext()){
String str=s.next();
System.out.println("输入的内容为:"+str);
}
s.close();
-
next()
- 一定要读取到有效字符才可以结束输入。
- 对输入有效字符之前遇到的空白,next()方法会将其去掉。
- 只有输入有效字符后才将其后面输入的空白作为结束符。
- next()不能得到带有空格的字符串。
-
nextLine()
- 以Enter作为结束符
- 可以获取空白
1.2 流程控制
1)顺序结构:顺序结构中的代码会按照顺序一行一行的执行所有的代码语句
2)分支结构
a.单分支结构:if (判断条件){}
b.多分支结构:if(判断条件){}else{}
c.嵌套分支结构:多个if else
3)选择结构:switch(变量名){ case 值1:操作;break;default:保底选项;}
a.变量支持的类型:byte,short,char,int,String,enum以及与之对应的包装类
b.如果配置了default默认选项,并且没有任何的case匹配到,则会执行default
c.case的个数 是否加break 是否加default根据业务需求决定
d.小括号中的变量的类型要与case后value的类型一致
e.执行顺序:先拿着变量的值,依次与每个case后的值做比较,如果相等,就执行case后的语句,若这个case后没有break,就会继续向下执行下一个case,如果一直没有遇到break,就会发生穿透现象,包括default
4)循环结构
a.for循环 for(开始条件;循环条件;更改条件){} (如果条件满足,则执行循环体内的内容)
b.嵌套for循环:外层循环控制的是轮数,内层循环控制的是每一轮中执行的次数;对于图形而言外层控制的是行数,内层控制的是列数
c.高效循环 for(遍历的元素类型 遍历的元素名:要遍历的数组/集合名){循环体}
d.while循环:while(判断条件){如果符合判断条件,继续循环}
e.do-while循环:一定会执行一次,然后再判断,如果满足条件,则继续循环 do{循环体}while(判断条件);
1.3 break&continue
- break:强行退出循环
- continue:终止该次循环,进行下次循环。
1.4 方法
1)格式:修饰符 返回类型 方法名(参数列表){方法体}
2)一般通过方法名+参数列表确定调用的方法
3)方法的重载:同名不同参
4)方法的传值:如果参数类型是基本类型,传入的是实际的字面值,如果是引用类型,传入的是地址值
a.形参:形式意义上的参数,如方法参数列表的参数名
b.实参:实际意义上的参数,如局部变量,成员变量等
5)方法的重写:子类继承父类,在不改变父类代码的情况下,实现功能的修改与拓展,遵循规则:两同 两小 一大
a.一大:子类方法的修饰符权限>=父类方法的修饰符权限
b.两同:方法名与参数列表与父类保持一致
c.两小:子类的返回值类型<=父类的返回值类型 子类方法抛出的异常类型<=父类方法抛出的异常类型
6)四种权限修饰符
| 权限修饰符 | | | | |
| ---------- | ---- | ---- | ---- | ------ |
| 修饰符 | 同类 | 同包 | 子类 | 不同包 |
| public | YES | YES | YES | YES |
| protected | YES | YES | YES | NO |
| default | YES | YES | NO | NO |
| private | YES | NO | NO | NO |
标签:case,控制,default,流程,next,break,循环,方法
From: https://www.cnblogs.com/cqwes123/p/18025043