流程控制
用户交互Scanner
-
Scanner**对象**
下面是创建 Scanner 对象的基本语法:
Scanner s = new Scanner(System.in);
接下来我们演示一个最简单的数据输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext() 与 hasNextLine() 判断是否还有输入的数据。
-
next & nextLine
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in); //next方式接收字符串
System.out.println("Next方式接收:");
//判断用户还有没有输入字符
if (scanner.hasNext()){
String str = scanner.next();
System.out.println("输入内容:"+str);
}
//凡是属于IO流的类如果不关闭会一直占用资源.要养成好习惯用完就关掉.就好像你接水完了要关 水龙头一样.很多下载软件或者视频软件如果你不彻底关,都会自己上传下载从而占用资源,你就会觉得 卡,这一个道理.
scanner.close();
}测试数据:Hello World!
结果:只输出了Hello。
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘接收数据 // nextLine方式接收字符串
System.out.println("nextLine方式接收:");
// 判断是否还有输入
if (scan.hasNextLine()) {
String str2 = scan.nextLine();
System.out.println("输入内容:" + str2);
}
scan.close();
}测试数据:Hello World!
结果:输出了Hello World!
两者区别:
next():
-
一定要读取到有效字符后才可以结束输入。
-
对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
-
只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
-
next() 不能得到带有空格的字符串。
nextLine():
-
以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
-
可以获得空白。
三种结构
顺序结构
选择结构
if单选择结构
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
if双选择结构
if(布尔表达式){ //如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
if多选择结构
if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
//如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){ //如果布尔表达式 3的值为true执行代码
}else { //如果以上布尔表达式都不为true执行代码
}
嵌套的if结构
if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码
if(布尔表达式 2){
//如果布尔表达式 2的值为true执行代码
}
}
switch多选择结构
switch(expression){
case value :
//语句
break;
//可选
case value :
//语句 break;
//可选
//你可以有任意数量的case语句
default :
//可选
//语句
}
当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必
须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现
break 语句。switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何
位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分
支不需要 break 语句。
循环结构
主要三种循环结构
-
while 循环
-
do…while循环
-
for 循环
while先判断后执行。dowhile是先执行后判断!
99乘法表
for (int i = 1; i <= 9 ; i++) {
for (int j = 1; j <= i; j++) {
System.out.println(j + "*" + i + "=" + (i * j));
}
System.out.println();
}
另外有增强for循环
for(声明语句 : 表达式)
{
//代码句子
}