Java:流程控制
Java:流程控制
1.用户交互Scanner
1.Scanner对象
Scanner s = new Scanner(System.in);
2.next & nextLine
package com.wen.Interaction;
import java.util.Scanner;
public class Demo1_Scanner {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
//hasNext()
if(scanner.hasNext()){
String str=scanner.next();
System.out.println(str);
}
Scanner scanner2=new Scanner(System.in);
//hasNextLine
if(scanner2.hasNextLine()){
String str1=scanner2.nextLine();
System.out.println(str1);
}
//凡是属于IO流的类如果不关闭会一直占用资源. 要养成好习惯用完就关掉. 就好像你接水完了要关水龙头一样. 很多下载软件或者视频软件如果你不彻底关, 都会自己上传下载从而占用资源, 你就会觉得卡, 这一个道理.
scanner2.close();
}
}
**两者区别 **
next():
1 、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白, next() 方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
4 next() 不能得到带有空格的字符串。
nextLine():
1 、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。
3.其他方法
如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取:
2.顺序结构
JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。
顺序结构是最简单的算法结构。
语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
顺序结构在程序流程图中的体现就是用流程线将程序框自上而地连接起来,按顺序执行算法步骤。
3.选择结构
1.if单选择结构
if(布尔表达式) {
//如果布尔表达式为true将执行的语句
}
2.if双选择结构
if(布尔表达式) {
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
3.if多选择结构
if(布尔表达式 1) {
//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2) {
//如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3) {
//如果布尔表达式 3的值为true执行代码
}else {
//如果以上布尔表达式都不为true执行代码
}
4.嵌套的if结构
if(布尔表达式 1) {
////如果布尔表达式 1的值为true执行代码
if(布尔表达式 2) {
////如果布尔表达式 2的值为true执行代码
}
}
5.switch多选择结构
switch(expression) {
case value :
//语句
break; //可选
case value :
//语句
break; //可选
//你可以有任意数量的case语句
defaul t : //可选
//语句
}
switch case 语句有如下规则:
-
switch 语句中的变量类型可以是: byte、 short、 int 或者 char。从 Java SE 7 开始, switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
-
switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
-
case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
-
当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
-
当遇到 break 语句时, switch 语句终止。程序跳转到 switch 语句后面的语句执行。 case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现break 语句。
-
switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。 default 在没有 case 语句的值和变量值相等的时候执行。 default 分支不需要 break 语句。
3.循环结构
Java中有三种主要的循环结构:
- while 循环
- do…while 循环
- for 循环
1.while 循环
while( 布尔表达式 ) {
//循环内容
}
2.do…while 循环
对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do {
//代码语句
}while(布尔表达式);
3.For循环
虽然所有循环结构都可以用 while 或者 do...while表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。
for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。
for循环执行的次数是在执行前就确定的。语法格式如下:
for(初始化; 布尔表达式; 更新) {
//代码语句
}
4.增强for循环
Java5 引入了一种主要用于数组或集合
Java 增强 for 循环语法格式如下:
for(声明语句 : 表达式)
{
//代码句子
}
int [] numbers={1,23,231,22,1};
for (int x:numbers){
System.out.println(x);
4.break & continue
1.break 关键字
break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
break 跳出最里层的循环,并且继续执行该循环下面的语句。
2.continue 关键字
continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。
在 for 循环中, continue 语句使程序立即跳转到更新语句。
在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语
3.两者区别
break在任何循环语句的主体部分,均可用break控制循环的流程。 break用于强行退出循环,不执行循环中剩余的语句。 (break语句也在switch语句中使用)
continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
4.带标签的continue
1 . goto关键字很早就在程序设计语言中出现。尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用; Java没有goto。然而,在break和continue这两个关键字的身上,我们仍然能看出一些goto的影子---带标签的break和continue。
-
“标签”是指后面跟一个冒号的标识符,例如: label:
-
对Java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希用,它们就会中断到存在标签的地方。
-
带标签的break和continue的例子:
package com.wen.circulate;
public class Label {
public static void main(String[] args) {
int count = 0;
outer:
for (int i = 101; i < 150; i++) {
for (int j = 2; j < i / 2; j++) {
if (i % j == 0)
continue outer;
}
System.out.print(i + " ");
}
}
}
浙公网安备 33010602011771号