02 JAVA流程控制
1.用户交互Scanner
nextline()用的多,next()用的少。
nextline()以回车为结束符。也就是说:nextline方法返回的是回车之前的所有字符。可以获得空白。
package com.mysoft.scanner;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
//创建一个扫描器对象,由于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断用户有没有输入字符串
if (scanner.hasNextLine()) {
//使用next方式接收
String str = scanner.nextLine();
System.out.println("输出的内容为:" +str);
}
//凡是属于IO留的类,如果不关闭会一直占用资源。要养成好习惯用完就关掉
scanner.close();
}
}
简化写法:
package com.mysoft.scanner;
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
//从键盘接收数据
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数据:");
String str = scanner.nextLine();
System.out.println("输出的内容为:" +str);
scanner.close();
}
}
实现一个机能,如下:
我们输入多个数字,并求其总和与平均数,没输入一个数字用回车确认,通过输入非数字来结束输入并输入执行结果
package com.mysoft.scanner;
import java.util.Scanner;
public class Demo05 {
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=m+1;
sum = sum + x;
System.out.println("你输入了第" + m + "个数据,然后当前结果sum=" + sum);
}
System.out.println(m +"个数的和为" + sum);
System.out.println(m +"个数的平均值为" + (sum/m));
scanner.close();
}
}
输入结果可以如下这样:
10
你输入了第1个数据,然后当前结果sum=10.0
20
你输入了第2个数据,然后当前结果sum=30.0
30
你输入了第3个数据,然后当前结果sum=60.0
40
你输入了第4个数据,然后当前结果sum=100.0
aaa
4个数的和为100.0
4个数的平均值为25.0
2.顺序结构
3.选择结构
if
package com.mysoft.scanner;
import java.util.Scanner;
public class IfDemo01 {
public static void main(String[] args) {
//考试分数大于60就是及格,小于60就是不及格
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = scanner.nextInt();
if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
scanner.close();
}
}
SWITCH多选择结构
break 穿透
switch 匹配一个具体的值。
从JavaSE 7开始,switch支持字符串String类型了。
IDEA也可以反编译看class文件的内容。
package com.mysoft.scanner;
public class SwitchDemo01 {
public static void main(String[] args) {
String name = "朵拉";
//JDK7的新特性,表达式结果可以是字符串!!!
//字符的本质还是数字
//反编译 java-----class(字节码文件)-----反编译(IDEA)
switch (name) {
case "朵拉":
System.out.println("朵拉A梦");
break;
case "机器猫":
System.out.println("机器猫");
break;
default:
System.out.println("龙猫");
break;
}
}
}
4.循环结构
■while循环
■do ... while循环
■for循环
在java5中引入了一种主要用于数组的增强型for循环。
100.for 回车快速完成for循环。
增强型for循环:
增强型for循环
public class ForDemo02 {
public static void main(String[] args) {
int[] numbers = {10, 20, 30, 40, 50};
for (int i = 0; i < 5; i++) {
System.out.println(numbers[i]);
}
System.out.println("================");
//遍历数组的元素
for (int x : numbers) {
System.out.println(x);
}
}
}
5.break和 continue
break用于强行退出循环。
continue用于终止某次循环过程。
不建议使用goto
public class ForDemo03 {
public static void main(String[] args) {
//打印101到150之间的质数
//质数是指大于1的自然数中,除了1和它本身以外不再有其他因数的自然数
int count = 0;
//不建议使用!!
outer:for (int i = 101; i < 150; i++) {
for (int j = 2; j < i / 2; j++) {
if (i % j == 0) {
continue outer;
}
}
System.out.print(i + " ");
}
}
}