1.3:流程控制语句(上)

您所在的位置:网站首页 oracle流程控制语句 1.3:流程控制语句(上)

1.3:流程控制语句(上)

2024-07-12 20:35| 来源: 网络整理| 查看: 265

前言:菜鸟一枚,如有问题欢迎大家在评论区指出,我们一起学习。

1.3.1:输入语句Scanner

 使用方法:

//使用Scanner需要导入这个包 如不导入,在使用Scanner时需要用全称(java.util.Scanner) import java.util.Scannner; Scanner input = new Scannner(System.in); int num = input.nextInt();//输入int类型数据 long bigNum = input.nextLong();//long类型 double d = input.nextDouble();//short类型 boolean b = input.nextBoolean();//布尔类型 String s = input.next();//字符串类型 String ss = input.nextLine();//另一种字符串输入方式 char c = input.next().charAt(0);//先按照字符串接收,然后再取字符串的第一个字符(下标为0)

.next()与.nextLine()区别:

.next() :在输入字符串时,在未读取到有效数据时,会吞掉缓冲区的空格和回车。在获取到有效数据后,遇到空格和回车就会停止输入。

String s = input.next();//输入 中国 人民,中国前面的空格和中国后面的内容都不会赋给s,前面的空格会被吞掉,后面的遇到空格停止输入了。

.nextLine() :在输入字符串时,遇到回车就会停止输入。

String ss = input.nextLine();//输入 中国 人民,会原封不动赋给ss。

注意:虽然.next()和.nextLine()都能读取字符串,但是在使用时有陷阱。.next()和.nextLine()都可以与.nextInt()等混用,但是当.nextLine()在.nextInt()等下面时,会得到不同的结果。

int num = input.nextInt(); String s = input.nextLine(); //这段代码可以正常给num赋值,但是s确是一个空的字符串,无法输入 /* 原因是在使用.nextInt()等方法输入时会以回车结束输入,这个回车会存在输入缓冲区,这些方法在使用时会吞掉回车不会读取它。(包括.next()方法,因为它没读到有效数据)但是.nextLine()会直接读取这个回车,导致停止输入。 */ //解决方法 int num = input.nextInt(); input.nextLine();//这个用于吞掉缓冲区的回车,不需要接收,便于下一个正常输入 String s = input.nextLine(); 1.3.2:if-else结构

 if-else结构有单分支,双分支,多分支三种结构,并且if-else可以嵌套。

//单分支 if(条件表达式){ 语句体; } //双分支 if(关系表达式) { 语句体1; }else { 语句体2; } //多分支 if (判断条件1) { 执行语句1; } else if (判断条件2) { 执行语句2; } ... }else if (判断条件n) { 执行语句n; } else { 执行语句n+1; } //嵌套 if(关系表达式) { if(关系表达式) { 语句体1; }else { 语句体2; } }else { 语句体3; }

 

1.3.3: switch- case结构

 语法结构:

switch(表达式){ case 常量值1: 语句块1; break; case 常量值2: 语句块2; break; default: 语句块n+1; }

执行过程,将表达式的值与各个常量自上往下进行比较,若是相等,则执行case对应的语句块。在执行语句块完毕时,若有break语句,则跳出switch-case结构,如果没有该语句,则会进行case的穿透。所谓case穿透,就是没有遇到break或者default时,程序会一直执行下去,知道所有语句执行结束。

注意:表达式值的类型只能是:4种基本数据类型(byte,short,int,char),两种引用数据类型(String,枚举)。

注意:case后面必须是常量,而且不能重复。

注意:default无论在哪个位置,总是最后执行,但case必须自上往下。

利用case穿透简化代码:

//不利用case穿透需要重复写输出语句 switch(num){ case 1: case 3: case 5: System.out.println("奇数"); break; case 2: case 4: case 6: System.out.println("偶数"); break; } //错误方法1 switch(num){ case 1,3,5: System.out.println("奇数"); break; case 2,4,6: System.out.println("偶数"); break; } //错误方法2 switch(num){ case 1|3|5: System.out.println("奇数"); break; case 2|4|6: System.out.println("偶数"); break; } //java12以后的新方法,case后面可以接多个常量,并且每一句都会自动break,不用担心漏写break switch(month) { case 1,3,5 -> System.out.println("奇数"); case 2,4,6 -> System.out.println("偶数"); };

 Java14新特性-switch表达式_idea java source 12不支持switch规则-CSDN博客



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3