Java流程控制与Scanner类的使用
Java流程控制与Scanner类的使用
Scanner类
-
Scanner类可以使程序接受键盘输入,实现人机交互
一个完整的Scanner的使用例子:
//创建一个扫描器对象,用于接收键盘数据 Scanner s=new Scanner(System.in); System.out.println("使用next方法接收:"); //判断用户有没有输入字符串 if(s.hasNext()){ System.out.println("使用next接收数据:"); String a=s.next(); System.out.println("输出的内容为:"+a); } //重点:这步必须加,因为Scanner是属于io流的类,所以使用后必须关闭,不然会一直占用内存空间 s.close();
-
注意:next只能输出空格前的字符串,nextline可能输出空格后的字符串
-
将接收语句放进循环就可以从键盘循环输入数据,直到不符合循环的条件表达式
-
可以将循环的条件表达式写为判断用户有没有从键盘输入,直到输入不符合规范的字符时跳出循环
Java流程控制
-
顺序结构
Java中所有的程序都是顺序结构
-
选择结构
if if-else 多重if 嵌套if switch结构
if结构
//表达式为true,则执行语句,否则,直接跳过 if(条件表达式){ 要执行的语句; }
if-else结构
//表达式为true,则执行语句,否则,执行else中的语句 if(条件表达式){ 执行的语句 }else{ 执行的语句 }
多重if结构
//适合解决同一种事,但分多种情况,例如成绩管理,100-90,卓越,90-80,优秀,80-70,良好,70-60,及格,60-0,不及格 if(条件表达式){ 执行的语句 }else if(条件表达式){ 执行的语句 }else if(条件表达式){ 执行的语句 }else{ 执行的语句 } //注意:else if就是将上一句的条件表达式取反,并与if后的条件表达式相交
嵌套if结构
//嵌套if就是if语句中还有if语句,另外我们所学的选择结构和循环结构都是可以互相嵌套的,来实现我们想要的功能 if(条件表达式){ if(条件表达式){ 执行的语句 } }else{ 执行的语句 }
switch结构
int n=s.nextInt(); //判断一个变量与一系列值中某个值相等 switch(n){ case 1: System.out.println("星期一");break; case 2: System.out.println("星期二");break; case 3: System.out.println("星期三");break; case 4: System.out.println("星期四");break; case 5: System.out.println("星期五");break; case 6: System.out.println("星期六");break; case 7: System.out.println("星期七");break; default: System.out.println("您输入的数字超出我们的范围!请输入介于1至7的数字。"); }
-
循环结构
while do-while for 增强型for
while结构
//如果表达式结果为true,则进入循环,直到不满足条件时结束,因此while中必须要有一个迭代,使得不进入死循环 while(条件表达式){ 执行的语句 }
do-while结构
//do-while循环中的语句至少会执行一次 do{ 执行的语句 }while(条件表达式)
for结构
//for循环的特点是,定义变量,条件表达式,迭代都是在for循环中定义的,for循环是最灵活,最有效地循环 for(int i=1;i<=5;i++){ System.out.println(i+"\t"); } //for循环的快捷键,数字.for
增强型for结构
//就是为数组而生的,将数组中的每一个元素都一一赋值给x,for每循环一次赋一个 int[] numbers={1,2,3,4,5,6} for(int x:numbers){ System.out.println(x); } //增强型for循环的快捷键,数组.for
树越是向往高处的光亮,它的根就越要向下,向泥土向黑暗的深处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?