Java流程控制和方法
一、流程控制
1、Scannel
- 之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入java.util.Scanner 是Java5的新特征,我们可以通过Scanner类来获取用户的输入。
基本语法:
Scanner s = new Scanner(System.in);
-
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext() 与hasNextLine()判断是否还有输入的数据。
-
next():
- 1、一定要读取到有效字符后才可以结束输入。
- 2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
- 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- 4、next()不能得到带有空格的字符串。
- nextLine():
- 1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
- 2、可以获得空白
测试:
public class Test_03 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.print("请输入你的名字:");
//判断是否输入
if (scanner.hasNext()){
//接收数据
String str = scanner.next();
System.out.println("输入了:"+str);
}
scanner.close();//关闭
}
}
2、顺序结构
Java的基本结构就是顺序结构,除非特别指明,就是一句一句向下执行。
如图:
- 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
3、选择结构
- if
public class Test_04 {
public static void main(String[] args) {
boolean b = true;
int i = 100;
if (b){
System.out.println("表达式成立");//语句1
}else {
System.out.println("表达式不成立");//语句2
}
/*
* if(表达式){
* 语句1
* }else{
* 语句2
* }
* 表达式如果是true执行语句1,否则执行语句2
* 比如1>10吗? 肯定是不的会返回false,就会执行语句2
*
* if可以单选择、双选择、多选择、嵌套(套娃一样)
* */
//单选
if (b){
System.out.println("单选");
}
//双选第一个就是,不写了
//多选择
if (60 > i){
System.out.println("大于");
}else if (110 > i){
System.out.println("大于");
}else {
System.out.println("可能吧");
}
//嵌套
if (true){
if (false){
System.out.println("这就是嵌套");
}else {
System.out.println("简单吧");
}
}
//嵌套多了自己的看不懂了可就不好了
}
}
- switch
- 多选择结构还有一个实现方式就是switch case 语句。
- switch case 语句判断一个变量与一个系列值中某个值是否相等,每个值称为一个分支。
- 语法:
public class SwitchCase {
public static void main(String [] args){
char grade = 'C';
switch(grade){
case 'A' :
System.out.println("优秀");
break;
case 'B' :
System.out.println("一般");
break;
case 'C' :
System.out.println("及格");
break;
default:
System.out.println("不及格");
}
}
}
4、循环结构
- while
结构:
while(//循环条件){
//循环内容
}
- do…while
结构:
do{
//循环内容
}while (//循环条件);
- while与do…while的区别
先判断,后判断
do…while至少执行一次循环
- for
结构:
for (初始化;循环条件;更新){
//循环内容
}
5、break&continue
- break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)
- continue语句用在循环语句体中,用于终止某次循环过程,也就是跳过循环中尚未执行的语句,接着进行下一次是否执行循环判定。
二、方法
1、什么是方法?
Java方法是语句的集合,他们在一起执行一个功能。
2、方法的定义
Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段。
方法的所有部分包括了修饰符、返回值类型、方法名、参数类型、方法体。
结构如下:
public void test(){
System.out.println("测试");
}
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
}
3、方法的调用
对象名 . 方法名
4、方法的重载
- 重载就是在一个类中,有相同的函数名称,但形参不同的函数。
- 重载规则
方法名称必须相同
参数列表必须不同
方法的返回类型可以相同也可以不相同
仅仅返回类型不同不足以成为方法的重载
5、可变参数
- 在方法声明中,在指定参数类型后加一个省略号(…)
- 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。
6、递归
- 简单来说递归就是自己调用自己
- 递归的结构有两个部分
递归头:什么时候不调用自身的方法
递归体:什么时候需要调用自身方法
- 阶乘测试:
public class Recursion {
public static void main(String[] args) {
System.out.println(test(5));
}
public static int test(int i){
if(i==1){
return 1;
}else {
return i*test(i-1);
}
}
}