JAVA---03
1. Scanner对象
//创建一个Scanner对象
Scanner Scanner = new Scanner(System.in);
String str;
//判断用户是否输入字符串
if(scanner.hasNext){
str = scanner.next();
System.out.println("输出内容为:"+str);
}
//关闭scanner
scanner.close();
通过Scanner类的next()与nextLine()方法获取输入的字符串,用hasNext()与hasNextLine()判断是否还有输入的数据
next():
-
一定要读取到有效字符后才可以结束输入
-
对输入有效字符遇到的空白,next()方法会自动将其去掉
-
只输入有效字符后才将其后面输入的空白作为分隔符或者是结束符
-
next()方法不能得到带有空格的字符串
-
nextLine():
-
以Enter为结束符
-
可以接受空白字符
-
nextInt() , nextDouble() , nextFloat() , nextShot() ,
nextByte() , nextLong()......
注意:
-
Scanner输入IO流,凡是输入IO流的如果不关闭它,就会一直占用资源,所以,要养成习惯,用完,要关闭!
-
hasNext() 和 hasNextLine() 的 区别:
-
hasNext()
方法会判断接下来是否有非空字符.如果有,则返回true
,否则返回false
-
hasNextLine()
方法会根据行匹配模式去判断接下来是否有一行(包括空行),如果有,则返回true
,否则返回false
-
-
采用
hasNextXxxx()
的话,后面最好也要用nextXxxx()
,否则可能会在别的地方报错:-
比如前面用
hasNextLine()
,那么后面要用nextLine()
来处理输入; -
后面用
nextInt()
方法的话,那么前面要使用hasNext()
方法去判断.
-
2.顺序结构
-
按顺序,从上到下进行
3.选择结构
-
if() else
if () --- else if() --- else if() ...... ---else
-
switch(){ case value: [...... default]}
它语句中的变量类型可以是byte,short,int或者char
jdk7之后支持字符串String类型
同时case标签必须为字符串常量或字面量
注:在使用switch()时,要注意case穿透,用好break(或者在有外层循环的时候也可用continue)
4.循环结构
-
while循环
while(布尔表达式){
//循环内容
} -
do...while循环
do{
//循环内容
}while(布尔表达式); -
for循环
for(初始化;布尔表达式;更新){
//循环内容
}for循环是一种支持迭代的一种通用结构,是最有效,最灵活的循环结构。
for循环执行的次数是在执行前就确定的
-
在java5中引入了一种主要用于 数组 的 增强型 for循环
for(声明语句 : 表达式){
//代码句子
}
/*
声明语句:声明新的局部变量,该 变量 的类型必须和 数组元素 的类型匹配。
其作用域限定在循环语句块,其值与此时数组元素的值相等
表达式:表达式是要访问的数组名,或者是返回值为数组的方法
*/
public static void main(String[] args) {
int[] number = {10,20,30,40}; //定义一个数组
for(int i = 0;i<4;i++){
System.out.println(number[i]);
}
//遍历数组的元素
for(int x : number){
System.out.println(x);
}
//注:不同点,下边是把number数组中的每一个元素,赋值给x,然后输出的,但使用的方法,就是第一个for循环
}
注:只要布尔表达式为true,循环就会一直执行下去
我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方法来结束循环
少部分情况需要循环一直执行,比如服务器的请求响应监听等
循环条件一直为true就会造成无限循环(死循环),我们正常的业务编程中应该尽量避免死循环。会影响程序性能或者造成程序卡死崩溃
5.break和continue
-
break:在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,
不执行循环中剩余的语句。(break语句也在switch语句中使用)
-
continue:语句在循环语句体中,用于终止循环过程,即跳过循环体中尚未执行的语句,
接着进行下一次是否执行循环的判定
-
了解goto关键字
//输出质数
//这种写法不建议使用,了解就好
outer:for(int i = 101;i<150;i++){
for(int j =2;j<i;j++){
if(i % j == 0){
continue outer;
}
}
System.out.println(i+" ");
}
补充
-
Scanner对象是jdk5的新特性,可以通过Scanner类来获取用户的输入,他存在于java.util.Scanner包中
-
jdk7开始 swith 支持字符串String类型了(字符的本身还是数字!)
-
在switch没有外层循环的时候,只能用break而不能用continue
在switch有外层循环的时候,可以用break,也可以用continue
-
.java ---(编译)---> .class(字节码文件)---(反编译)--->
-
伪代码:假代码的意思
-
在java5中引入了一种主要用于 数组 的 增强型 for循环
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗