Java流程控制
Scanner对象
java.util.Scanner是java5的新特征,我们可以通过Scanner类来获取用户的输入
基本语法
Scanner scanner = new Scanner(System.in);
if(scanner.hasNextInt()){
int a = scanner.nextInt();
}
scanner.close();//注意这里要关闭资源
注意这里要关闭流资源
next();
- 一定要读取到有效字符后才可以结束输入
- 对输入有效字符之前遇到的恐怖,next()方法会自动将其去掉
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
- next()不能得到带有空格的字符串
nextline();
- 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
- 可以得到空白
其他的具体作用我就不做赘述了,
scanner具体用法参考structure里面目录查找对应方法
顺序结构
java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。
顺序结构是最简单的算法结构
语句与语句之间,框与框之间的是按从上到下的顺序进行的,它是由若干个一次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
选择结构
if单选结构
if双选结构
if-else结构
if多选择结构
if-else if-else if - else
嵌套的if结构
if里面嵌套一个if
switch多选择结构
switch (expression){
case value1:
break;
case value2 :
break;
default:
}
如果没有break;则依次执行。
switch 语句中的变量类型可以是byte、short、int、char
java SE7 开始支持String类型
反编译,直接用idea打开就好了
反编译后可以看出,string是用哈希值来一一对应的
循环结构
while循环
while(){
}
一直循环通常是等待响应
但一直为ture则会无限循环,尽量避免这种死循环
do while 循环
do{
}while()
for 循环
for (初始化; 布尔表达式 ; 更新) {
}
for (int i = 0; i < ; i++) {
}
for(;;){}//死循环
java5中引入了一种主要用于数组的增强型for循环
int[] numbers = {1,2,3,4,5};
for (int x : numbers) {
System.out.println(x);
}
break、continue、goto
break在任何循环语句的主题部分,均可以用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。也可以在switch中用
continue语句用在循环语句体中,用于终止某次循环过程,即跳过本次未执行的循环语句,接着进行下一次是否执行循环的判定。
goto
goto认为java的一个保留字,但并未在java中正式使用,
带标签的break和continue是弱化版的goto。
outer:for (int i = 0; i < 100; i++) {
for (int j = 0; j < 100; j++) {
continue outer;
}
}
goto语句尽可能不用,容易产生程序紊乱,这里不做过多赘述。