文章目录
一、 键盘输入
1. Scanner类使用
1.1 导包
1.2 创建对象实例
1.3 调用方法
2. Scanner类代码示例
二、流程控制语句
1.选择结构
1.1 if 单选择结构
1.2 if-else双选择结构
1.3 if-else if-else多选择结构
1.4 switch结构
2. 循环结构
2.1 whlie循环
2.2 do-while循环
2.3 for循环
2.4 无限循环
2.5 break、continue和return
一、 键盘输入
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一个特定值,用于有返回值的函数方法