Java基础 - 流程控制
流程控制
一、用户交互Scanner
-
Scanner s = Scanner(System.in)
-
next()、nextLine() 方法获取输入的字符串
-
hasNext()、hasNextLine() 判断是否还有输入的数据
-
hasNext()返回的是boolean类型,而next()返回的是你输入的那个值
-
scanner1.hasNext()可以理解为把我们输入的值存到了scanner1当中,而scanner1.next()可以理解为从scanner1中取值,取值后将标识符后移
Scanner scanner1 = new Scanner(System.in); //创建一个扫描器对象,用于接收键盘数据
System.out.println("使用next方法接收:"); //Hello world
String a1 = scanner1.next(); //next接收一个字符
System.out.println("输出结果为"+a1); //Hello
Scanner scanner2 = new Scanner(System.in);
System.out.println("使用nextLine方法接收:");
String a2 = scanner2.nextLine(); //nextLine接收字符串
System.out.println("输出结果为" + a2); //Hello world
Scanner scanner3 = new Scanner(System.in);
System.out.println("使用hasNextFloat方法接收:");
if (scanner3.hasNextFloat()) {
Float a3 = scanner3.nextFloat(); //nextFloat接收小数
System.out.println("输出结果为" + a3);
}
scanner1.close(); //凡事属于IO流的类,如果不关会一直占用资源
//注意最后再关闭,否则会报错“Exception in thread "main" java.util.NoSuchElementException: No line found”
//原因:scanner1.close()过后System.in流就永远关闭,Scanner scanner2 = new Scanner(System.in)并不会重新打开输入流 -
二、顺序结构
-
基本结构【除非特殊指明,从上到下依次按顺序进行】
三、选择结构
-
if 语句
if (布尔表达式 1){
//语句1
}else if (布尔表达式 2){
//语句2
}else if (布尔表达式 3){
//语句3
}else{
// 当以上布尔表达式都不满足时,执行的语句
} -
switch多选择结构
-
用于判断一个变量与一系列值中某个值是否想等,每一个值称为一个分支
-
从 java SE7 开始,switch支持字符串 String 类型,同时case标签必须是字符串常量或字面量
switch (expression){
case value1: //case 穿透 //expression==value1,则会执行下方语句
//语句
break; //如果不加break,匹配成功,执行完当前语句,还会往下接着执行
case value2:
//语句
break;
default: //相当于else
//语句
} -
四、循环结构
-
while 循环【先判断后执行】
while (布尔表达式){
//循环内容
}
-
do ··· while 循环【先执行后判断,代码至少执行一次】
do {
//循环内容
}while (布尔表达式);
-
for 循环
for (初始化;布尔表达式;更新){
//循环内容
}
-
增强for循环
for(声明语句:表达式)
{
//代码句子
}
-
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配,其作用域限定在循环语句块,其值与此时数组元素的值相等
-
表达式:表达式是要访问的数组名,或是返回值为数组的方法
int[] numbers = {1, 2, 3, 4, 5}; //创建一个数组
for (int x:numbers){ //将numers每一项赋值给x,进行遍历
System.out.println(x);
}
-
----------- 举例 -------------
-
计算0-100之间的奇数和偶数的和
//while循环
int i = 0;
int num_1 = 0;
int num_2 = 0;
while (i<=100){
if (i%2==0) {
num_1 += i;
}else {
num_2 += i;
}
i++;
}
System.out.println("偶数和为:"+num_1);
System.out.println("奇数和为:"+num_2);
System.out.println("sum:"+(num_1+num_2));
//for循环
int num_3 = 0;
int num_4 = 0;
for (int i1 = 0; i1 <= 100; i1++) {
if (i1%2==0) {
num_3 += i1;
}else {
num_4 += i1;
}
i += 1;
}
System.out.println("偶数和为:"+num_3);
System.out.println("奇数和为:"+num_4);
System.out.println("sum:"+(num_3+num_4));-
输出1-100能被5整除的数,每行3个
//while循环
int i2 = 1;
while (i2<=100){
if (i2%5==0){
System.out.print(i2+"\t"); //print输出完不换行
}
if (i2%(5*3)==0){
System.out.println(); //println输出完换行
}
i2++;
}
//for循环
for (int i_2 = 0; i_2 <= 100; i_2++) {
if (i_2%5==0){
System.out.print(i_2+"\t");
}
if (i_2%(5*3)==0){
System.out.println();
}
}-
打印九九乘法表
for (int i4 = 1; i4 < 10; i4++) {
for (int i5 = 1; i5 <= i4; i5++) {
System.out.print(i5+"*"+i4+"="+i4*i5+"\t");
}
System.out.println();
}-
打印三角形
for (int t1 = 1; t1 <= 5; t1++) {
for (int t2 = 5; t2 > t1; t2--) {
System.out.print(" ");
}
for (int t3 = 1; t3 <= t1; t3++) {
System.out.print("*");
}
for (int t4 = 1; t4 < t1; t4++) {
System.out.print("*");
}
System.out.println();
} -
五、break & continue
-
break:终止循环
-
continue:跳出当次循环
-
goto关键字
-
goto即带标签的break和continue
-
标签:指后面跟一个冒号的标识符【label:】
-
标签用在循环语句之前,在嵌套循环中,由于break和continue只中断当前循环,加入标签后,可中断到标签所处位置
-

浙公网安备 33010602011771号