Java基础之流程控制语句

复合语句

Java中的复合语句是以整个块区为单位的语句,所以又称块语句。复合语句是有“{”开始,“}”结束的语句。对于复合语句中的每个语句都是从上到下被执行的。复合语句可以用在任何一个单独语句可以用到的地方,并且复合语句是可嵌套的。


注意:复合语句为局部变量创建了一个作用域,只能在此作用域中使用此变量。

条件语句

if条件语句

if语句是用于在某条件成立的情况下执行某段程序,而在另一种情况下执行另一段代码。if的后面跟着一个“布尔表达式”作为条件,表达式的结果为true则执行后面语句块中代码,否则不执行。if语句可分为简单的if语句、if...else语句和if...else if多分支语句。

1、简单if条件语句

语法格式:

布尔表达式:必要参数,表示最后返回的结果必须是布尔值,它可以是一个布尔变量和常量,或者使用关系或布尔运算符的表达式。

语句序列:可选参数,可以是一条或多条语句,布尔表达式的结果 为true时执行。如果语句序列中仅有一条语句,大括号可以省略。

int a = 100;
if(a == 100)
System.out.println("a的值为:" + a);

注意:虽然if语句后面的大括号可以省略,但是为了程序的阅读性,建议还是不要省略。

2、if...else语句

if...else语句表示为,如果满足某种条件,就进行某种处理,否则就进行另一种处理。语法格式如下:


同if语句一样,表达式的结果必须是boolean类型的,为true执行表达式后面的语句块,为false执行else后面的语句块。

3、if...else if多分支语句

if...esle if语句是针对某一事件的多种情况进行处理。通常表示为“如果满足条件,就进行某种操作,否则如果满足另一种条件就进行另一种操作”。语法格式如下:


注意:if语句只执行条件为true的命令语句,其他语句都不会执行。

import java.util.Scanner;

public class Demo {
	public static void main(String[] args) {
		//创建扫描器
		Scanner scan = new Scanner(System.in);
		System.out.print("请输入用户名:");
		//获得输入的值
		String userName = scan.nextLine();
		System.out.println("请输入密码:");
		//获得输入的值
		String password = scan.nextLine();
		//判断用户名
		if (!userName.equals("wc")) {
			System.out.println("用户名非法");
		} else if (!password.equals("wcsoft")) {//判断密码
			System.out.println("登录密码错误");
		} else {
			System.out.println("登录成功");
		}
	}
}



switch多分支语句

在编程中比较常见的问题就是检测一个变量是否符合某个条件,如果不匹配就用另一个值来检测,以此类推。当然这个问题if语句也可以处理,但是比较笨重,这种情况推荐使用switch语句。在Java中,可以使用switch语句将动作组织起来,以一种简单明了的方式来实现“多对一”的选择。语法如下:


switch语句中表达式的值必须是整型或字符型,在JDK1.7之后支持String类型。如果表达式的值和某个case后面的值相同,则执行case后面的语句直到遇到break语句为止。此时的case语句中没有break语句,就继续执行,知道遇到break或大括号为止。default语句是可选的,表示默认,如果没有一个常量值与表达式的值相同,则执行default。

注意:同一个switch语句,case常量值必须互不相同。常量值不可以是字符串。

import java.util.Scanner;

public class Demo {
	public static void main(String[] args) {
		// 创建扫描器
		Scanner scan = new Scanner(System.in);
		// 获得输入
		int achievement = scan.nextInt();
		// 成绩对10取余
		achievement = achievement % 10;

		// 根据成绩判断学生的等级
		switch (achievement) {
		case 9:
			System.out.println("优");
			break;
		case 8:
			System.out.println("良");
			break;
		case 7:
			System.out.println("中");
			break;
		case 6:
			System.out.println("差");
			break;
		default:
			if (achievement >= 0 && achievement <= 10) {
				System.out.println("不及格");
			} else {
				System.out.println("输入的数不是有效分数");
			}
			break;
		}
	}
}

循环语句

循环语句就是在满足一定条件的情况下反复执行的某一个操作。Java中提供了三种循环语句,分别是:while语句、do...while语句和for循环。

while语句

while语句也成为条件判断语句,循环方式:利用条件来控制是否继续反复执行这个语句。语法如下:


当条件返回的结果为真则执行语句块,并重新判断条件,知道条件不满足时退出循环。

public class Demo {
	public static void main(String[] args) {
		int a = 100;
		while (a > 60) {
			// System.out.println(a);
			a--;
		}
		System.out.println(a);
	}
}

do...while语句

do...while语句与while语句类似,它们之间的区别是while语句是先判断条件知否成立在执行循环体,do...while语句是先执行一遍循环体在判断条件是否成立。也就是说do...while语句循环体至少被执行一次。语法如下:

public class Demo {
	public static void main(String[] args) {
		int b = 100;
		do {
			b--;
		} while (b == 60);
		System.out.println(b);
	}
}

for循环

for循环是Java程序设计中最常用的循环语句。一个for循环可以用来重复执行某条语句,知道某个条件得到满足。在JDK1.5之后新增了foreach语法,又称增强for循环,语法上更为简洁。

for语句

语法如下:


表达式1:初始化表达式,负责完成变量的初始化。

表达式2:循环条件表达式,值为boolean型的表达式,指定循环条件。

表达式3:循环后操作表达式,负责修整变量,改变循环条件。

for循环的执行循序:

首先执行表达式1,完成变量的初始化工作;下一步 判断表达式2的值,为true进入循环体;执行完循环体后执行表达式3,这部分通常是增加或减少循环控制变量的一个表达式。直到循环条件不满足时跳出循环。

/**
 * 打印九九乘法表
 * 
 * @author Administrator
 *
 */
public class Demo {
	public static void main(String[] args) {
		// 外层循环 被乘数
		for (int i = 1; i <= 9; i++) {
			// 内层循环 乘数
			for (int j = 1; j <= i; j++) {
				// 打印九九乘法表
				System.out.print(j + "*" + i + "=" + j * i + "\t");
			}
			// 输出换行
			System.out.println();
		}
	}
}

foreach语句

foreach语句是for语句的特殊简化版,foreach并不能完全取代for循环,然而任何的foreach语句都可以改写成for循环。


foreach语句中的变量x,不必对其进行初始化。foreach语句在遍历数组方面提供了很大的方便。

public class Demo {
	public static void main(String[] args) {
		// 定义一个数组
		int[] arr = { 1, 2, 3, 4 };
		// 遍历数组
		for (int i : arr) {
			System.out.print(i + "\t");
		}
	}
}

跳转语句

Java中提供了3种跳转语句,分别是break、continue和return。

break语句

break语句在switch中是用于终止下面的case,也可以用在循环语句中,表示结束循环,也就是忽略循环体中任何其他语句和循环条件的限制。

注意:在循环语句嵌套的情况下break是只能结束当前循环,想要结束外层循环可以使用标记来实现。

public class Demo {
    public static void main(String[] args) {
        // 定义一个变量
        int a = 100;
        // 循环
        a: while (a > 60) {
            a--;
            break a;
        }
        System.out.println(a);
    }
}

continue语句

continue语句只能用于循环语句中,表示跳出本次循环,进行下一次循环。

/**
 * 输出10以内的全部奇数
 * 
 * @author Administrator
 *
 */
public class Demo {
	public static void main(String[] args) {
		// 定义一个变量i
		int i = 0;
		// 循环
		while (i < 10) {
			i++;
			// 如果i对2取余等于0就跳出本次循环
			if (i % 2 == 0) {
				continue;
			}
			// 输出i的值
			System.out.print(i + "\t");
		}
	}
}

return语句

return语句可以从一个方法返回,并把控制权交给调用它的语句。语法如下:


表达式:可选参数,表示要返回的值。它的数据类型必须与方法中声明的返回值类型一致,可以通过强制类型转换实现。

return语句通常被放在调用方法的最后,用于退出当前方法并返回一个值。


参考文献《Java从入门到精通》

猜你喜欢

转载自blog.csdn.net/qq_35046158/article/details/80259208