Java流程结构
Scanner对象
学习流程之前,先对用户交互对象(Scanner)进行学习,这是Java5的新特性
通过Scanner类,我们可以获取用户输入的信息。
我们一般使用next()与nextLine()方法来获取用户输入的字符串
next()与nextLine()方法是有很大的不同的
//创建Scanner类
Scanner scanner = new Scanner(System.in);
- 使用next()方法接收用户输入的信息
import java.util.Scanner; //系统自动创建
public class Demo08 {
public static void main(String[] args) {
//创建scanner对象
Scanner scanner = new Scanner(System.in); //编写后系统自动创建第一行的代码
//提示用户输入
System.out.println("请输入内容");
//获取用户输入信息,使用next()方法接收
String str = scanner.next();
//输出用户输入的信息
System.out.println("输入的内容为:" +str);
//关闭scanner对象
scanner.close();
}
}
- 使用nextLine()方法接收用户输入信息
import java.util.Scanner;
public class Demo09 {
public static void main(String[] args) {
//提示用户输入
System.out.println("请输入内容");
//创建scanner对象
Scanner scanner = new Scanner(System.in);
//使用nextLine()方法接收用户输入的内容
String str = scanner.nextLine();
//输出用户输入的信息
System.out.println("输入的内容为:" +str);
//关闭scanner对象
scanner.close();
}
}
从上面两个实例我们可以发现next()与nextLine()的不同
-
next()会以空格作为输入结束的标志,nextLine()是以回车键作为结束标志
-
next()不能得到带有空格的字符串,而nextLine()可以
Scanner还支持输入int或float类型的数据,这个其实也很简单,与上面的很类似
一、顺序结构
顺序结构是最简单的算法结构
是按照顺序依次向下执行的
public class Demo01 {
public static void main(String[] args) {
System.out.println(1);
System.out.println(2);
System.out.println(3);
}
}
------------------------------------
1
2
3
二、选择结构
我们往往会遇到一些选择,这是我们需要做出判断,决定我们要走的“路”
1、if单选择结构
-
流程图
-
语法
if(布尔表达式){ //布尔表达式为true时需要执行的语句 }
-
实例
public class IfDemo01 { public static void main(String[] args) { int result = 60; if(result >=60){ System.out.println("及格"); } } }
2、if双循环结构
- 流程图
-
语法
if(布尔值表达式){ //布尔表达式为true时需要执行的语句 }else{ //布尔表达式为false时需要执行的语句 }
-
实例
public class IfDemo01 { public static void main(String[] args) { int result = 6; if(result >=60){ System.out.println("及格"); }else{ System.out.println("不及格"); } } }
3、if多选择结构
-
流程图
-
语法
if(布尔表达式1){ //表达式1为true时执行的表达式 }else if(布尔表达式2){ //表达式为1为false,表达式2为true时执行的表达式 }else if(布尔表达式3){ //表达式为1为false,表达式2为false,表达式3为true时执行的表达式 }else{ //都为false时执行的表达式 }
-
实例
import java.util.Scanner; public class IfDemo01 { public static void main(String[] args) { //定义成绩 int result; //提示用户输入成绩 System.out.println("请输入你的成绩:"); //创建scanner对象 Scanner scanner = new Scanner(System.in); //获得用户输入的成绩 result = scanner.nextInt(); //用if判断用户输入成绩的等级,并输出 if(result >=90 && result <= 100){ System.out.println("A"); }else if(result >= 80){ System.out.println("B"); }else if(result >= 70){ System.out.println("C"); }else if(result >= 60){ System.out.println("D"); }else if(result >= 0){ System.out.println("E"); }else{ System.out.println("请输入正确的成绩格式"); } //释放scanner scanner.close(); } }
4、if嵌套选择结构
-
流程图
-
语法
if(表达式1){ //表达式1为true时执行的语句 if(表达式2){ //表达式1为true,表达式2为true时执行的语句 }else{ //表达式1为true,表达式2为false时执行的语句 } }else{ //表达式1为false时执行的语句 }
-
实例
import java.util.Scanner; public class IfDemo02 { public static void main(String[] args) { String str; int id; Scanner scanner = new Scanner(System.in); System.out.println("请输入你选的系别:"); str = scanner.next(); if(str.equals("电子信息系")){ System.out.println("请输入你选择的课程"); id = scanner.nextInt(); if(id == 123){ System.out.println("欢迎加入电子系123的课程"); }else{ System.out.println("没有该课程"); } }else{ System.out.println("没得其他系,嘿嘿"); } scanner.close(); } }
5、Switch多选择结构
-
语法
switch(expression){ case value : //语句 break; //可选 case value : //语句 break; //可选 //你可以有任意数量的case语句 default : //可选 //语句 }
-
实例
break是选择的,它在switch里是跳出判断的意思,如果没有写,程序将出现case穿透现象,下面两段代码就了解什么是case穿透
import java.util.Scanner; public class SwitchDemo01 { public static void main(String[] args) { //创建等级 String rank; //创建scanner对象 Scanner scanner = new Scanner(System.in); //提示用户输入 System.out.println("请输入你的等级:"); //获取用户的输入 rank = scanner.next(); switch (rank){ 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("请输入正确的等级格式!"); } //释放scanner scanner.close(); } }
import java.util.Scanner;
public class SwitchDemo01 {
public static void main(String[] args) {
//创建等级
String rank;
//创建scanner对象
Scanner scanner = new Scanner(System.in);
//提示用户输入
System.out.println("请输入你的等级:");
//获取用户的输入
rank = scanner.next();
switch (rank){
case "A":
System.out.println("优秀");
case "B":
System.out.println("良好");
break;
case "C":
System.out.println("及格");
case "D":
System.out.println("挂科");
default:
System.out.println("请输入正确的等级格式!");
}
//释放scanner
scanner.close();
}
}
不难发现,没写break时我们想要的结果与计算机给我们的并不一致,所以说写switch时要带上break。
三、循环结构
在上面的代码里,程序一直无法运行,只能够执行一次,我们在实际上不可能让程序只跑一次,这时候就需要循环结构了
1、While循环
-
语法
while(布尔表达式){ /* 循环内容,只要布尔表达式为true,循环就会一直进行, 通常需要一个让表达式失效的方法来结束循环,不至于让它出现死循环 */ }
-
实例
public class WhileDemo01 { public static void main(String[] args) { //1~100的和 int sum = 0; int i = 0; while (i<=100){ sum = sum + i; i++; } System.out.println(sum); } }
2、do while循环
do while循环和while循环很类似,但是在不满足条件的情况下do while循环也会执行一次
while是先判断后执行
do while是先执行后判断
-
语法
do{ //循环内容 }while(布尔表达式);
-
实例
//dowhile与while的区别 public class DoWhileDemo02 { public static void main(String[] args) { int i = 0; while (i<0){ System.out.println(i); i++; } System.out.println("-------------------------"); do { System.out.println(i); i++; }while (i<0); } }
3、for循环
For循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构
-
语法
for(初始化; 布尔表达式; 更新) { //代码语句 }
-
实例
public class ForDemo01 { public static void main(String[] args) { for (int i = 1; i<=5; i++){ System.out.println(i); } } }
//打印99乘法表 public class ForDemo03 { 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(); } } }
for循环是十分重要的,上述只是简简单单的举例,认识for循环,以后在慢慢深入了解for的魅力
小结
以上均为自己在b站狂神说java的理解内容