【JAVA笔记】2_Java流程控制


一、Scanner对象

  • 获取用户输入
  • 基本语法:
Scanner s = new Scanner(System.in);
  • 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
package scanner;
import java.util.Scanner;

public class Demo1 {
    public static void main(String[] args) {
        //创建扫描器对象,用于接收输入
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用next接收:");

        //判断用户是否输入字符串
        if(scanner.hasNext()){
            //使用next方式接收
            String str = scanner.next();
            System.out.println("输出为:"+str);
        }

        //凡是属于IO流的类,若不关闭会一直占用资源
        scanner.close();
    }
}
package scanner;

import java.util.Scanner;
public class Demo2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用nextLine方式接收:");
        if(scanner.hasNextLine()){
            String str = scanner.nextLine();
            System.out.println("输出为:"+str);
        }
        scanner.close();
    }
}

  • next():
  1. 读取到有效字符后才结束
  2. 自动去掉有效字符前的空白
  3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
  4. next()不能得到带有空格的字符串
  • nextLine():
  1. 以enter为结束符
  2. 可以获得空白

二、Scanner进阶使用

1.示例:判断输入为整数/小数

代码如下(示例):

package scanner;
import java.util.Scanner;

public class Demo3 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //从键盘接收数据
        int i = 0;
        float f = 0.0f;

        System.out.println("请输入整数:");

        if(scanner.hasNextInt()){
            i = scanner.nextInt();
            System.out.println("整数数据:" + i);
        }else{
            System.out.println("输入的不是整数数据");
        }

        System.out.println("请输入小数:");

        if(scanner.hasNextFloat()){
            f = scanner.nextFloat();
            System.out.println("小数数据:" + f);
        }else{
            System.out.println("输入的不是小数数据");
        }
        scanner.close();
    }
}

2.示例:求和及求平均

代码如下(示例):

package scanner;
import java.util.Scanner;

public class Demo5 {
    public static void main(String[] args) {
        //输入多个数字,计算和及平均数。每输入一个数字用回车确认,通过输入非数字结束输入并输出执行结果
        Scanner scanner = new Scanner(System.in);
        //和
        double sum = 0;
        //计算输入多少个数字
        int m = 0;
        //通过循环判断是否还有输入,并每次进行求和统计
        while(scanner.hasNextDouble()){
            double x = scanner.nextDouble();
            m++;
            sum = sum + x;
        }
        System.out.println(m + "个数的和为" + sum);
        System.out.println(m + "个数的平均值为" + (sum / m));
        scanner.close();
    }
}

调用String的charAt(0)方法获取第一个字符,如char a = scanner.next().charAt(0);

三、结构

1.顺序结构

  • Java的基本结构,最简单的算法结构,按顺序依次执行

2.选择结构

  • if单选择结构
if(布尔表达式){
	//若布尔表达式为true执行的语句
}
  • if双选择结构
if(布尔表达式){
	//若布尔表达式为true
}else{
	//若布尔表达式为false
}
  • if多选择结构
if(布尔表达式1){
	//若布尔表达式1为true
}else if(布尔表达式2){
	//若布尔表达式2为true
}else if(布尔表达式3){
	//若布尔表达式3为true
}else if(布尔表达式4){
	//若布尔表达式4为true
}else{
	//若以上布尔表达式都不为true
}
  • 嵌套if结构
if(布尔表达式 1){
	if(布尔表达式 2){
	}
}
  • switch多选择结构
  1. switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
  2. switch语句中的变量类型可以为“byte、short、int或char
  3. case标签必须为字符串常量或字面量
  4. caes穿透现象:不加break会输出符合的case之后所有的值
  5. JDK7后,可以使用字符串
switch(expression){
	case value :
		//语句
		break//可选
	case value :
		//语句
		break//可选
	default//可选
		//语句
}
  • 反编译:java—class(字节码文件)—反编译(IDEA)

3.循环结构

  • while循环
  1. 循环结束时为布尔表达式为false,要避免死循环
  2. 布尔表达式为true时循环继续
  3. 少部分情况需要循环一直执行,如服务器的请求响应监听
  4. 先判断后执行
while(布尔表达式){
	//循环内容
}
  • do…while循环
  1. 即使不满足循环,也至少执行一次
  2. 先执行后判断
do{
	//代码语句
}while(布尔表达式);
  • for循环
  1. 执行次数在执行前确定
  2. 最先执行初始化,可以声明一种类型的多个循环控制变量,也可以是空语句
  3. 其次检查布尔表达式的值。若为true,执行循环体;若为法拉瑟,循环终止并执行循环体后面的语句
  4. 执行一次循环后更新循环控制变量
  5. 再次检测布尔表达式,循环执行上述过程
for(初始化; 布尔表达式; 更新){
	//代码语句
}
  • 增强for循环
  1. 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
  2. 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
for(声明语句 : 表达式)
{
	//代码句子
}
  • break continue
  1. break强行退出循环
  2. continue跳过循环体中尚未执行的语句,接着执行下一次是否执行循环的判定,用于终止某次循环过程

网课来源

【狂神说JAVA】https://www.kuangstudy.com/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值