Java流程控制

一.用户交互 Scanner

1. Scanner.next()

1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
4、next()不能得到带有空格的字符串。

在这里插入图片描述

2. Scanner.nextLine()

1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。
在这里插入图片描述

3. Scanner 相关代码

import java.util.Scanner;

public class Demo01 {

    public static void main(String[] args) {

        //创建一个扫描器对象,用于接受键盘数据
        Scanner scanner = new Scanner(System.in);

        //System.out.println("使用next方式接收:");
        判断用户有没有输入字符串
        //if (scanner.hasNext()){
        //    String str = scanner.next();    //程序会等待用户输入完毕
        //    System.out.println("输出的内容为:"+str);
        //}
        
        System.out.println("使用nextLine方式接收:");
        //判断用户有没有输入字符串
        if (scanner.hasNext()){
            String str = scanner.nextLine();    //程序会等待用户输入完毕
            System.out.println("输出的内容为:"+str);
        }
        
        // 凡是属于IO流的类 如果不关闭会一直占用资源.要养成好习惯用完就关掉
        scanner.close();
    }
}

二.结构

4. 顺序结构

程序自下而上逐行执行,一条语句执行完之后继续执行下一条语句,一直到程序的末尾。
在这里插入图片描述

5. 选择结构、条件嵌套

根据判断条件的成立与否再决定要执行那些语句的一种结构。
在这里插入图片描述

Java条件语句之 if

语法:

	if(条件){
			条件成立时执行的条件
	}

注意:如果 if 条件成立时的执行语句只有一条,则可以省略大括号!
但如果执行语句有多条,那么大括号就是不可或缺的。

Java条件语句之 if…else

if…else 语句的操作比 if 语句多了一步: 当条件成立时,则执行 if 部分的代码块; 条件不成立时,则进入 else 部分。

语法:

	if(条件的布尔表达式){
			代码块一
	}else{
			代码块二
	}
Java条件语句之多重 if

多重 if 语句,在条件 1 不满足的情况下,才会进行条件 2 的判断;当前面的条件均不成立时,才会执行 else 块内的代码。

语法:

	if(条件一){
			代码块一
	}else if(条件二){
			代码块二
	}else{
			代码块三
	}
Java条件语句之 switch

当需要对选项进行等值判断时,使用 switch 语句更加简洁明了。

语法:

	switch(表达式){
		case  值1:
			执行代码块1;
			break;	//跳出
		case  值2:
			执行代码块2;
			break;	
			···
		case  值n:
			执行代码块n;
			break;	
		default:
			默认执行的代码
	}

执行过程:当 switch 后表达式的值和 case 语句后的值相同时,从该位置开始向下执行,直到遇到 break 语句或者 switch 语句块结束;如果没有匹配的 case 语句则执行 default 块的代码。

Java条件语句之嵌套 if

嵌套 if 语句,只有当外层 if 的条件成立时,才会判断内层 if 的条件。

语法:

	if(条件1为真){
			if(条件2){
				代码块
			}else{
				代码块
			}
		}else{	//条件一为假
			代码块
	}

6. 循环结构、循环嵌套

根据判断条件的成立与否,决定程序段落的执行次数,而这个程序段落就被称为循环主体。
在这里插入图片描述

Java循环语句之 while

语法:

	while(判断条件){
		循环操作
	}

执行过程:

< 1 >、 判断 while 后面的条件是否成立( true / false )
< 2 >、 当条件成立时,执行循环内的操作代码 ,然后重复执行< 1 >、< 2 >, 直到循环条件不成立为止

特点:先判断,后执行

Java循环语句之 do…while

语法:

	do{
		循环操作
	}while(判断条件);

执行过程:

<1>、 先执行一遍循环操作,然后判断循环条件是否成立
<2>、 如果条件成立,继续执行< 1 > 、< 2 >,直到循环条件不成立为止

特点: 先执行,后判断

由此可见,do…while 语句保证循环至少被执行一次

Java循环语句之 for

语法:

	for(循环变量初始化;循环条件;循环变量变化){
		循环操作
	}

执行过程:

<1>、 执行循环变量初始化部分,设置循环的初始状态,此部分在整个循环中只执行一次
<2>、 进行循环条件的判断,如果条件为 true ,则执行循环体内代码;如果为 false ,则直接退出循环
<3>、 执行循环变量变化部分,改变循环变量的值,以便进行下一次条件判断
<4>、 依次重新执行< 2 >、< 3 >、< 4 >,直到退出循环

特点:相比 while 和 do…while 语句结构更加简洁易读

Java循环语句之循环嵌套(多重循环)

循环体中包含循环语句的结构称为多重循环。三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环。在二重循环中,外层循环每执行一次,内层循环要执行一圈。

例如:最简单的冒泡排序算法

import java.util.Arrays;

public class BubbleSort {

    public static void main(String[] args) {
        int[] a ={1,3,46,32,235,21};
        int[] sort = sort(a);
        System.out.println(Arrays.toString(sort));
    }

    public static int[] sort(int[] b){
        int temp = 0;
        //for语句循环嵌套
        for (int i = 0; i < b.length-1; i++) {
            for (int j = 0; j < b.length - 1 - i; j++) {
                if (b[j]<b[j+1]){
                    temp = b[j];
                    b[j] = b[j+1];
                    b[j+1] = temp;
                }
            }
        }

        return b;
    }
}

7.break、continue

breakcontinue
break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
Java循环跳转语句之 break

在 Java 中,我们可以使用 break 语句退出指定的循环,直接执行循环后面的代码。

Java循环跳转语句之 continue

continue 的作用是跳过循环体中剩余的语句执行下一次循环。

例如,打印 1–10 之间所有的偶数,使用 continue 语句实现代码为:

for(int i=1;i<10;i++){
	//判断i是否为奇数 若为奇数 则跳过该条语句输出,继续执行下一条循环
	if(i%2!=0){
		continue;	//通过continue,结束本次循环,直接进行下一次循环
	}
	System.out.println("i");
}

运行结果

2
4
6
8
10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值