Java流程控制
-
用户交互Scanner
- 我们可以通过Scanner类来获取用户的输入
- 基本语法:Scanner scanner = new Scanner(System.in);
- 通过Scanner类的next()和nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()和hasNextLine()判断是否还有输入的数据。
- Scanner对象的两个方法next()和nextLine()的区别
- 只要输入有效字符后遇到空白,next方法就结束了,而nextLine方法的结束符是enter键
package com.zengchengjin.scanner; import java.nio.channels.NonWritableChannelException; import java.util.Scanner; public class Demo01 { 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.zengchengjin.scanner; import java.util.Scanner; public class Demo02 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入你要输入的数字:"); if (scanner.hasNextDouble()){ double a = scanner.nextDouble(); System.out.println("你输入的浮点数是:"+a); }else System.out.println("你输入的不是浮点数!"); System.out.println("请输入你要输入的数字:"); if (scanner.hasNextInt()){ int b = scanner.nextInt(); System.out.println("你输入的整数是:"+b); }else System.out.println("你输入的不是整数!"); scanner.close(); } }
package com.zengchengjin.scanner; import java.util.Scanner; public class Demo03 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int i = 0; float f = 0.0f; System.out.println("请输入整数:"); if (scanner.hasNextInt()){ i = scanner.nextInt(); System.out.println("你输入的整数为:"+i); }else System.out.println("你输入的不是整数!"); if (scanner.hasNextFloat()){ f = scanner.nextFloat(); System.out.println("你输入的小数为:"+f); }else System.out.println("你输入的不是小数"); scanner.close(); } }
-
if选择结构
- if…else…
- if…(else if)…(else if)…else
- 选择结构可以相互嵌套,并且互不影响
package com.zengchengjin.struct; import java.util.Scanner; public class Demo01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩:"); int score = scanner.nextInt(); if (score==100){ System.out.println("你真厉害!"); }else if (score<100 && score>=90) System.out.println("A级"); else if (score<90 && score>=80) System.out.println("B级"); else if (score<80 && score>=70) System.out.println("C级"); else if (score<70 && score>=60) System.out.println("D级"); else if (score<60 && score>=0) System.out.println("你真菜!"); else System.out.println("你输入的成绩不合法!"); scanner.close(); } }
-
Switch选择结构:多选择结构
-
switch case 语句判断 一个变量与一系列值中某个值是否相等,每个值称为一个 分支
-
通过将class文件移动到java文件的目录里,就可以在idea里看到反编译后的程序
java编译——class(字节码文件)——反编译(idea)
-
switch语句中的变量类型可以是
- byte、short、int或者char
- 从Java SE 7开始就支持String类型了
- case标签必须为字符串常量或字面量
-
switch( ){
case" ":
break;
case" ":
break;
…
default:
}
package com.zengchengjin.struct; import com.sun.corba.se.impl.orbutil.CorbaResourceUtil; public class Demo02 { public static void main(String[] args) { char a = 'E'; switch (a){ case 'A': System.out.println("优秀"); break; case 'B': System.out.println("良"); break; case 'C': System.out.println("合格"); break; case 'D': System.out.println("不合格"); break; default: System.out.println("非法成绩"); } } }
-
-
while循环结构
-
while是最基本的循环,结构为
while(布尔表达式){
循环内容
}
-
只要布尔表达式为true,循环就会一直执行下去
-
我们大多数时候是要让循环停止下来的,我们需要一个让表达式失效的方式来结束循环
-
少部分情况需要循环一直执行,比如服务器的请求响应监听等
-
我们正常的业务中应该避免死循环,死循环会造成程序卡死奔溃
package com.zengchengjin.struct; public class Demo03 { public static void main(String[] args) { int i = 0; int sum = 0; while (i<=100){ sum = sum+i; i++; } System.out.println(sum); } }
-
-
do while循环语句
-
与while语句相似,不同的是,do while语句至少会执行一次
-
do{
代码语句
**}while(布尔表达式); **
package com.zengchengjin.struct; public class Demo04 { public static void main(String[] args) { int i = 0; int sum = 0; do { sum = sum+i; i++; }while (i<=100); System.out.println(sum); } }
-
-
while和do while的区别
- while是先判断后执行,do while是先执行后判断
- do…while总是保证循环体至少被执行一次,这是主要区别
-
for循环
- 简单
-
九九乘法表和杨辉三角
package com.zengchengjin.struct;
public class Demo07 {
public static void main(String[] args) {
for (int j = 1; j <= 9; j++) {
for (int i = 1; i <= j; i++) {
System.out.print(i + "*" + j + "=" + (j * i)+"\t");
}
System.out.println();
}
}
}
package com.zengchengjin.struct;
public class Demo08 {
public static void main(String[] args) {
for(int i=1;i<=5;i++){
for(int j=5;j>i;j--){
System.out.print(" ");
}
for (int j=1;j<=i;j++){
System.out.print("#");
}
for (int j = 1; j < i; j++) {
System.out.print("#");
}
System.out.println();
}
}
}