第三章 分支结构

流程控制

    顺序结构

    分支结构

    循环结构

 

分支结构

  if语句

            if (表达式成立) {

                     执行代码A

              }else{

                     执行代码B

              }

注:其中else部分可以省略;当ifelse语句中只有一句时可以省略大括号

public class D1 {
	public static void main(String[] args) {
		int a = 10, b = -5;
		if (a >= b) {
			System.out.println("a大于等于b"); // 会被执行
		} else {
			System.out.println("a小于b"); // 不会被执行
		}
		if (a % 2 == 0) {
			System.out.println("a是偶数"); // 会被执行
		} // 此处省略else语句
		
		if ((a > 0 && b > 0) || (a < 0 && b < 0)) {
			System.out.println("a和b相乘的结果是正数"); // 不会被执行
		}
	}
}

  三元表达式

    (关系或者逻辑表达式)? 成立时返回值 : 不成立时返回值

public class D2 {
	public static void main(String[] args) {
/*		int a = 5, b = 10, max;
		if (a > b) {
			max = a;
		} else {
			max = b;
		}*/ 
// 三元表达式简化了if,但是不利于理解
		int a=5,b=10 ,max ;
		max = (a > b) ? a : b ;
	}
}

  if语句可以通过else if语句实现多路分支结构

public class D3 {
	public static void main(String[] args) {
		int a = 10;
		if (a > 0) {
			System.out.println("a是正数");
		} else if (a == 0) {
			System.out.println("a是0");
		} else {
			System.out.println("a是负数");
		}
	}
}

  嵌套if结构

/*
 * 判断一个输入的年份是闰年还是平年?
 * */
import java.util.Scanner;

public class D4 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("请输入一个年份:");
		int year = input.nextInt();
		if(year%4==0){
			if(year%100!=0 || year % 400==0){
				System.out.println(year+"年是闰年");
			}
		}else{
			System.out.println(year+"年是平年");
		}			
	}
}

  switch语句

                   switch(表达式){

                            case A:

                                     代码段A

                                     break ;

                            case B:

                                     代码段B

                                     break ;

                            .....

                            default:

                                     代码段C

                   }

 

注:switch语句将表达式的值与各个case子语句的值进行判断,如果相等则执行case子语句中的代码段,直到遇到break语句;如果在代码段中不写break子句,则会继续执行后续case子句中的内容。如果没有一个case子句的值与表达式的值相等,会执行的default子句中的代码块

 

  判断控制输入

importjava.util.Scanner;

/*
 * 用户输入一个整数,打印输出这个整数
 * 如果输入的不是整数,让用户重新输入
 * */
public class D6 {
	public static void main(String[] args) {
		// 创建Scanner对象
		Scanner input = new Scanner(System.in);
		intnum = 0; // 定义接收用户输入的变量
		boolean flag = true; // 控制循环的变量
		System.out.println("请输入一个整数:");
		do {// 判断输入的数
			if (input.hasNextInt()) {
				//接收数
				num = input.nextInt();
				//输入合法:改变循环的条件,跳出循环
				flag = false;
			} else {// 输入不合法
				input.nextLine() ; // 释放掉输入的内容,将扫描仪推进到当前
				System.out.println("请重新输入一个整数:");
			}
		} while (flag);
		// 打印输出
		System.out.println(num);
	}
}

注:断点调试

猜你喜欢

转载自blog.csdn.net/Mythology_px/article/details/81387569