文章目录
一、 键盘输入
1. Scanner类使用
Scanner类是引用数据类型的一种,我们可以使用该类来完成用户键盘录入,获取到录入的数据。
1.1 导包
import java.util.Scanner;
1.2 创建对象实例
Scanner sc = new Scanner(System.in);
1.3 调用方法
常用的方法有:

eg.
int i = sc.nextInt();//用来接收控制台录入的数字;
String s = sc.next(); //next() 方法遇见第一个有效字符(非空格,非换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描,获取扫描到的内容,即获得第一个扫描到的不含空格、换行符的单个字符串。
String s = sc.nextLine();//nextLine()方法,可以扫描到一行内容并作为一个字符串而被获取到。
note:
nextLine()方法比较特殊,返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。但是该方法会把nextInt(),next(),nextDouble(),nextFloat()的结束换行符作为字符串读入,进而不需要从键盘输入字符串nextLine()便已经转向了下一条语句执行。
因此,如果需要在nextInt(),next(),nextDouble(),nextFloat()这些方法之后使用nextLine(),我们首先需要一个nextLine()来吸收掉上面方法的结束换行符。
2. Scanner类代码示例
import java.util.Scanner;
public class TestScanner {
public static void main(String[] args) {
//创建Scanner引用类型的变量
Scanner sc = new Scanner(System.in);
/*
nextLine()方法比较特殊,返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
但是该方法会把nextInt(),next(),nextDouble(),nextFloat()的结束换行符作为字符串读入,进而不需要从键盘输入字符串nextLine便已经转向了下一条语句执行。
因此,如果需要在nextInt(),next(),nextDouble(),nextFloat()这些方法之后使用nextLine(),我们首先需要一个nextLine()来吸收掉上面方法的结束换行符。
*/
//获取一行内容
System.out.println("请输入一行内容");
String str1 = sc.nextLine();
System.out.println("str1的值为" + str1);
//获取数字
System.out.println("请输入一个数字");
int n = sc.nextInt();
System.out.println("n的值为" + n);
//获取字符串
System.out.println("请输入一个字符串");
String str = sc.next();
System.out.println("str的值为" + str);
//获取一行内容
System.out.println("请输入一行内容");
String str12 = sc.nextLine();
String str123 = sc.nextLine();
System.out.println("str12的值为" + str12+"str123的值为"+str123);
}
}
输出为:

我们可以看到sc.next()方法输出是空格之前的内容second,遇到空格后直接结束,剩余部分保留到了缓冲区,而第一个sc.nextLine()没有输入,直接输出sc.next()的未输出内容,遇到我们敲的回车后结束。第二个sc.nextLine()才是正常获取用户的输入。
二、流程控制语句
1.选择结构
1.1 if 单选择结构
语法结构
if(布尔表达式){
语句块
}
流程图

1.2 if-else双选择结构
语法结构
if(布尔表达式){
语句块1
}else{
语句块2
}
流程图

1.3 if-else if-else多选择结构
语法结构
if(布尔表达式1) {
语句块1;
} else if(布尔表达式2) {
语句块2;
}……
else if(布尔表达式n){
语句块n;
} else {
语句块n+1;
}
流程图

1.4 switch结构
语法结构
switch (表达式) {
case 值1:
语句序列1;
[break];
case 值2:
语句序列2;
[break];
… … … … …
[default:
默认语句;]
}
流程图

示例
public class Test6 {
public static void main(String[] args) {
char c = 'a';
int rand = (int) (26 * Math.random());
char c2 = (char) (c + rand);
System.out.print(c2 + ": ");
switch (c2) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
System.out.println("元音");
break;
case 'y':
case 'w':
System.out.println("半元音");
break;
default:
System.out.println("辅音");
}
}
}
2. 循环结构
2.1 whlie循环
语法结构
while (布尔表达式) {
循环体;
}
在循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于后来每一次额外的循环,都会在开始前重新计算一次。
流程图

2.2 do-while循环
语法结构
do {
循环体;
} while(布尔表达式) ;
do-while循环结构会先执行循环体,然后再判断布尔表达式的值,若条件为真,执行循环体,当条件为假时结束循环。do-while循环的循环体至少执行一次。
流程图

2.3 for循环
语法结构
for (初始表达式; 布尔表达式; 迭代因子) {
循环体;
}
流程图

2.4 无限循环
for ( ; ; )
or
while(true)//Java中不可有while(1)
2.5 break、continue和return
- 在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出整个循环体,不执行循环中剩余的语句。
- continue 语句用在循环语句体中,用于终止某次循环过程,即跳出当前的这一次循环,继续下一次循环。
- return语句用于跳出所在方法,结束该方法的运行。一般有两种用法:
1.return;直接使用return结束方法执行,用于没有返回值的函数方法
2.return value;return一个特定值,用于有返回值的函数方法
2.6 &&和||
- &&
前后条件都为True才返回True,其余情况返回False。要注意: 若前一个判断条件是Fales,则后面的判断条件都不会进行判断。 - ||
只要有一个条件为True就返回True。
本文详细介绍了Java中的Scanner类用于键盘输入的方法,包括导入、创建对象及常见方法如next()和nextLine()的使用。接着,文章深入探讨了流程控制语句,涵盖if选择结构、switch结构以及各种循环结构如while、do-while和for循环,还讲解了break、continue和return的用法以及逻辑运算符&&和||的应用。
&spm=1001.2101.3001.5002&articleId=106290439&d=1&t=3&u=dae45e098a0c4db0aa78da4d9dd3d0cf)

被折叠的 条评论
为什么被折叠?



