Java流程控制:用户交互Scanner
语言程序的编写在后期的web制作应用外,对于前期的学习中我们想要实现程序与人的交互的话,在Java中为我们提供了个工具包中有 java.util.Scanner这样一个类,这是Java5中的新特征,用来获取相关自定义变量中用户的输入。
基本语法:
Scanner scan =new Scanner(System.in);
通过new一个Scanner对象来接受用户的输入
Scanner两种重要的方法:
1、以 next 开头的方法:用于从输入源中获取下一个标记并返回相应的数据类型
常用的有:
- next():从输入源中获取并返回一个字符串,默认以空格为分隔符,以回车 Enter 为结束符,回车 Enter 后的内容则放入缓冲区。
- nextLine():从输入源中获取并返回一行字符串(以换行符为分隔符)。
- nextInt():从输入源中获取并返回一个整数。
- nextDouble():从输入源中获取并返回一个浮点数。
- nextBoolean():从输入源中获取并返回一个布尔值(“true” 或 “false”)。
注:
next()和nextLine()在处理方式和使用场景方面有一些区别:
next()方法读取的字符串不包含分隔符,如果输入中存在多个以空格分隔的单词,next()方法只会返回第一个单词,因此不能得到带有空格的字符串。
nextLine()方法从输入源中读取并返回一整行字符串,包括换行符\n在内,会读取输入源中的全部内容直到遇到换行符,或者输入结束。
2、以 hasNext 开头的方法:用于检查输入源中是否还有下一个标记可用
常用的有:
- hasNext():如果输入源中还有下一个标记(非空格字符),返回 true。
- hasNextLine():如果输入源中还有下一行(非空行),返回 true。
- hasNextInt():如果输入源中还有下一个整数,返回 true。
- hasNextDouble():如果输入源中还有下一个浮点数,返回 true。
- hasNextBoolean():如果输入源中还有下一个布尔值,返回 true。
算法结构
1、顺序结构
顺序结构是Java语句中最基本的结构,也是各种语言的基本结构,自上向下,依次执行。

2、选择结构
选择结构是Java中最重要且最基本的语句结构之一。
2.1 if单选择结构
选择判断中只有一个选择判断

基本语法:
if(布尔表达式){
}
代码示例:
import java.util.Scanner; class java1 { public static void main(String[] args) { Scanner scan=new Scanner(System.in); int a =scan.nextInt(); int b=10; if(a<b){ System.out.println(a); } } } //输入5时候,满足条件则打印出a; //不满足条件则该条判断语句会被跳过并不会有输出结果
2.2 if-else 双选择结构
对于上述的单选择结构,其实双选则结构更像是一个条件的结果,或者直白点就是一场胜负,只有两种选择结果。

基本语法:
if(布尔表达式){
//如果布尔表达式为true;
}else{
//否则就是布尔表达式为false;
}
代码示例:
import java.util.Scanner; class java1 { public static void main(String[] args) { Scanner scan=new Scanner(System.in); int score =scan.nextInt(); int b =60; if(score<b){ System.out.println("不及格"); }else{ System.out.println("及格"); } } } //以成绩及格与否为例,<60会输出不及格;反之则会输出及格
2.3 if-else if -else 多选择结构

基本语法:
if(布尔表达式1){
//如果布尔表达式1为true;
}else if(布尔表达式2){
//如果布尔表达式2为true;
}else if(布尔表达式3){
//如果布尔表达式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(); } }
2.4if嵌套选择结构

基本语法:
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("电子信息系")){ //equals用于字符串类型的等值比较 System.out.println("请输入你选择的课程"); id = scanner.nextInt(); if(id == 123){ System.out.println("欢迎加入电子系123的课程"); }else{ System.out.println("没有该课程"); } }else{ System.out.println("没得其他系,嘿嘿"); } scanner.close(); } }
2.5 switch选择结构
其实对于多结构来说,还有一个实现的结构方法,便是我要介绍到的switch case语句。
switch case语句判断一个变量与一系列中某个值是否相等,每一个值则称之为一个分支。

基本语法:
switch(表达式){
case 常量1: //常量必须为字符串常量或者字面量数据类型
执行相关语句;
break; //该部分根据代码要求来判断是否break中断,还是continue继续
case 常量2:
执行相关语句;
break; //该部分根据代码要求来判断是否break中断,还是continue继续
..................//你可以设置任意数量的case语句
default 常量n+1:
执行相关语句;
break; //该部分根据代码要求来判断是否break中断,还是continue继续
}
代码示例:
import java.util.Scanner; class IfDemo02 { public static void main(String[] args) { Scanner scan=new Scanner(System.in); int score=scan.nextInt(); switch(score/10){ case 9: System.out.println("A+"); break; case 8: System.out.println("A"); break; case 7: System.out.println("B"); break; case 6: System.out.println("C"); break; default: System.out.println("D"); break; } scan.close(); } }
3、循环结构
3.1 while 循环结构
while 循环是java中最基础的循环结构,只要条件判断为true,那么这个程序就会一直循环下去
但大多数情况下我们需要让他停止下来,因此需要在循环体中添加一个表达式失效的方式来结束
执行规律:
1)首先执行一次初始值;
2)然后判断条件,如果条件为true,执行循环操作代码块,循环操作代码块执行完,执行迭代代码,迭代代码执行完,再去判断循环条件
注意:
1)初始值代码只执行一次
2)迭代代码用来改变初始值,为了让循环条件在某个时刻不再满足,结束循环,如果没有迭代代码。循环会进入死循环
3)如果第一次判断循环条件不满足,那么循环操作一次都不会执行
语法结构: 初始值; while(条件){ //循环操作代码块 //迭代代码 }代码实例:
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner scan=new Scanner(System.in); int i=10; int a=0; while(a<i){ a++; System.out.println(a); } } }
3.2 do ....while 循环结构
与while循环结构不同之处在于,do ....while循环至少会执行一次
while循环是先判断后执行,do ....while循环是先执行后判断
语法结构:
初始值;初始值代码; do{ //循环操作代码 //迭代代码 }while(循环条件);代码示例:
public static void main(String[] args) { //使用do while 循环输出1-100之间所有的整数 //初始值 int i=1; do{//循环操作 System.out.println(i); //迭代操作 i++; }while (i<=100);//循环条件 } }
3.3 for 循环结构
for循环是一种支持迭代的通用结构,是最有效,最灵活的,也是最常用的循环结构,该执行次数是在执行之前就已经确认的
语法结构:
for(初始化; ;循环条件;迭代语句){
//循环句子;
}
- 执行流程:
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
④执行迭代语句
⑤回到②继续代码示例:
public static void main(String[] args) { //使用for循环输出100遍好好学习,天天向上 for(int i =1;i<=100;i++){ System.out.println("第"+i+"遍:好好学习,天天向上"); } System.out.println("输出完毕"); } }

945

被折叠的 条评论
为什么被折叠?



