流程控制

用户交互Scanner

Scanner类可以实现计算机与人的交互。java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。

Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext() 与 hasNextLine() 判断是否还有输入的数据。

next & nextLine

使用next方式接收一下输入的数据:

public static void main(String[] args) {
	//创建一个扫描器对象,用于接收键盘数据 
	Scanner scanner = new Scanner(System.in); 
	//next方式接收字符串 
	System.out.println("Next方式接收:");
    //判断用户还有没有输入字符 
    if (scanner.hasNext()){ 
    	String str = scanner.next(); 
    	System.out.println("输入内容:"+str); 
    }//凡是属于IO流的类如果不关闭会一直占用资源,所以我们要对资源进行关闭 
    scanner.close(); 
}

测试数据:Hello World!

结果:只输出了Hello。

使用另一个方法来接收数据:nextLine():

public static void main(String[] args) {
	Scanner scan = new Scanner(System.in); // 从键盘接收数据 
	// nextLine方式接收字符串 
	System.out.println("nextLine方式接收:"); 
	// 判断是否还有输入 
	if (scan.hasNextLine()) { 
		String str2 = scan.nextLine(); 
		System.out.println("输入内容:" + str2); 
		}
	scan.close(); 
}

测试数据:Hello World!

结果:输出了Hello World!

重点是两者的区别:

next():

nextLine():

顺序结构

JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。

选择结构

1.if单选择结构:

我们需要判断一个东西是否可行我们才向下去执行。

if(布尔表达式){
	//如果布尔表达式为true将执行的语句 
	}

意义:if语句对条件表达式进行一次测试,若测试为真,则执行下面的语句,否则跳过该语句。

2.if双选择结构:

说得明白一点就是“成功了怎么样否则怎么样”。

if(布尔表达式){
	//如果布尔表达式的值为true 
    语句块1
	}else{ 
	//如果布尔表达式的值为false 
    语句块2
		}

意义:当条件表达式为真时,执行语句块1,否则,执行语句块2。也就是else部分。

3.if多选择结构:

在实际生活中我们可能面临着有多个条件满足一个人条件就做对应的事,那么此时我们就需要多选择结构。

if(布尔表达式 1){
	//如果布尔表达式 1的值为true执行代码 
	}else if(布尔表达式 2){ 
		//如果布尔表达式 2的值为true执行代码 
		}else if(布尔表达式 3){ 
			//如果布尔表达式 3的值为true执行代码 
			}else { 
				//如果以上布尔表达式都不为true执行代码 
				}

if 语句后面可以跟 else if…else 语句,这种语句可以检测到多种可能的情况。

if多选择结构使用的注意点:

4.嵌套的if结构:

使用嵌套的 if…else 语句是合法的。也就是说你可以在另一个 if 或者 else if 语句中使用 if 或者 else if 语句。你可以像 if 语句一样嵌套 else if...else。

例如:

if(布尔表达式 1){
	//如果布尔表达式 1的值为true执行代码 
		if(布尔表达式 2){ 
			//如果布尔表达式 2的值为true执行代码 
		} 
	}

5.switch多选择结构:

switch case 语句判断一个变量与一系列值中某个值是否相等若相等就执行对应语句块中的代码,每个值称为一个分支。

例如:

switch(expression){
	case value : 
		//语句 break; //可选 
	case value : 
		//语句 break; //可选 //你可以有任意数量的case语句 
	default : //可选 
		//语句 
	}

使用switch case语句需要注意以下使用规则:

switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。

如果 case 语句块中没有 break 语句时,匹配成功后,从当前 case 开始,后续所有 case 的值都会输出。如果后续的 case 语句块有 break 语句则会跳出判断。

循环结构

顺序结构的程序语句只能被执行一次。如果您想要同样的操作执行多次,,就需要使用循环结构。

Java中有三种主要的循环结构:

1.while循环:

while是最基本的循环,它的结构为:

while( 布尔表达式 ) {
	//循环内容 
}

例如:

public static void main(String[] args) {
	int i = 0; 
	//i小于100就会一直循环 
	while (i<100){ 
		i++; System.out.println(i); 
		} 
}

只要布尔表达式的值为true那么就会一直循环下去。

在循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于后来每一次额外的循环,都会在开始前重新计算一次判断是否为真。直到条件不成立,则循环结束。

2.do...while循环:

对于上面while循环在每次循环之前我们都要判断布尔表达式的值是否为true,当为true的时候我们才会进行循环否则我们就会终止循环。有时候我们需要即使不满足条件我们也需要进行一次循环这时候我们就需要使用到do...while循环结构。

do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次

do {
	//代码语句 
	}while(布尔表达式);

注意:布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。 如果布尔表达式的值为 true,则语句块一直执行,直到布尔表达式的值为 false。

例如:

public static void main(String[] args) {
	int i = 0; int sum = 0; 
	do {
		sum = sum+i; i++; 
		}while (i <= 100); 
		System.out.println("Sum= " + sum); 
	}

3.for循环:

语法格式如下:

for(初始化; 布尔表达式; 更新) {
	//代码语句 
}

for循环说明如下:

例如:

public static void main(String[] args) {
	int a = 1; //初始化 
	while(a<=100){ //条件判断 
		System.out.println(a); //循环体 
		a+=2; //迭代 
			}
		System.out.println("while循环结束!"); 
		for(int i = 1;i<=100;i++){ //初始化//条件判断 //迭代 
			System.out.println(i); //循环体 
			}
		System.out.println("while循环结束!"); 
	}

breake&continue

breake关键字:

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。break 跳出最里层的循环,并且继续执行该循环下面的语句。

例如:

public static void main(String[] args) {
	int i=0; 
	while (i<100){ 
		i++; 
		System.out.println(i); 
		if (i==30){ 
			break; 
			} 
		} 
	}

continue关键字:

continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。在 for 循环中,continue 语句使程序立即跳转到更新语句。

例如:

public static void main(String[] args) {
	int i=0; 
	while (i<100){ 
		i++; 
		if (i%10==0){ 
			System.out.println(); 
			continue; 
			}
			System.out.print(i); 
		} 
	}

区别:

发表回复