从JavaSE到项目部署——Java基础学习第六天(Java程序控制结构)

目录

一、顺序控制

二、分支控制

        1、单分支

        2、双分支

        3、多分支

        4、嵌套分支

        5、switch分支结构

三、循环控制

        1、for循环控制

        2、while循环控制

        3、do_while循环控制

        4、循环嵌套练习代码

                统计三个班成绩情况

                九九乘法表

                空心金字塔

四、跳转控制语句break、continue和return 

        1、break

        2、continue

        3、return 


一、顺序控制

        介绍:程序从上到下逐行的执行,中间没有任何判断和跳转。

        Java中定义变量时采用合法的向前引用

二、分支控制

        介绍:让程序有选择的执行。

        1、单分支

                基本语法:

if(条件表达式){
    执行代码块;  //可以有多条语句
}

                说明:当条件表达式为true时,就会执行{ }内的代码,如果为false,就不会执行;

                           如果{ }只有一条语句时可以不写{ },但是建议写上,代码更清晰。

                流程图:

                

//举例
import java.util.Scanner;

public class lx0016{
	public static void main(String[] args){
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入年龄");
		int age = myScanner.nextInt();
		if(age > 18){
			System.out.println("你年龄大于18岁,已成年!");
		}

		System.out.println("程序继续...");
	}

}

        2、双分支

                基本语法:

if(条件表达式){
    执行代码块1;
} else {
    执行代码块2;
}

                说明:当条件表达式成立,执行代码块1,否则执行代码块2;

                           如果执行的代码块只有一条语句,则{ }可以省略。 

                流程图:

                


import java.util.Scanner;

public class lx0016{
	public static void main(String[] args){
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入年龄");
		int age = myScanner.nextInt();
		if(age > 18){
			System.out.println("你年龄大于18岁,已成年!");
		}else{
			System.out.println("你未成年……")
		}

		System.out.println("程序继续...");
	}

}

        3、多分支

                基本语法:

if(条件表达式1){
    执行代码块1;
}
else if(条件表达式2){
    执行代码块2;
}
……
else{
    执行代码块n;
}

                说明:

                    a)当条件表达式1成立,执行代码块1;

                    b)如果表达式1不成立,才去判断表达式2是否成立;

                    c)如果表达式2成立,就执行代码块2;

                    d)以此类推,如果所有表达式都不成立,则执行else的代码块。

                注意:只能有一个执行入口!

                流程图:

                 

        4、嵌套分支

                在一个分支结构中又完整的分支结构;

                里面的分支的结构称为内层分支,外面的分支结构称为外层分支;

                规范:不要超过三层(可读性不好)。

                基本语法:

if(){
    if(){
        if-else...
    }else{
        if-else...
    }
}

        5、switch分支结构

                基本语法:

switch(表达式){
    case 常量1:
    语句块1;
    break;  //结束switch
    case 常量2:
    语句块2;
    break;
    ...
    case 常量n:
    语句块n;
    break;
    default:  //一个常量都没有匹配上就执行该语句块
    default语句块;
    break;
}

                switch注意事项和细节:

                    a)表达式数据类型,应和case后的常量类型保持一致,或者是可以自动转成可以相                        互比较的类型,比如:输入的是字符,而常量是int;

                    b)switch(表达式)中表达式的返回值必须是:byte、short、int、char、enum、                              String;

                    c)case子句中的值必须是常量,而不能是变量;

                    d)default子句是可选的,当没有匹配的case时,执行default;

                    e)break语句用来在执行完一个case分支后使程序跳出switch语句块,若没有写                              break,程序会执行到switch结尾。

                流程图:

                

import java.util.Scanner;
public class lx0019{
	public static void main(String[] args){
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入一个字符(a-g):");
		char a = myScanner.next().charAt(0);
		switch(a){
			case 'a':
				System.out.println("今天星期一");
				break;
			case 'b':
				System.out.println("今天星期二");
				break;
			case 'c':
				System.out.println("今天星期三");
				break;
			case 'd':
				System.out.println("今天星期四");
				break;
			case 'e':
				System.out.println("今天星期五");
				break;
			case 'f':
				System.out.println("今天星期六");
				break;
			case 'g':
				System.out.println("今天星期日");
				break;
			default:
				System.out.println("输入字符不正确,没有匹配的");
		}
	}
}

三、循环控制

        介绍:使代码循环进行。

        1、for循环控制

                基本语法:

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

                注意细节:

                        a)循环条件是返回一个布尔值的表达式

                        b)for(;循环判断条件;)中的初始化和变量迭代可以写到其他地方,但;不可省略;

                        c)循环初始值可以有多条初始化语句,但要求类型一样,中间用逗号隔开;

                        d)循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开;

                        e)for(;;){}表示无限循环。 

                 流程图:

                

import java.util.Scanner;
public class lx0021{
	public static void main(String[] args){
		Scanner myScanner = new Scanner(System.in);
		System.out.println("输入开始值:");
		int start = myScanner.nextInt();
		System.out.println("输入结束值:");
		int stop = myScanner.nextInt();
		System.out.println("输入倍数:");
		int a = myScanner.nextInt();

		int count = 0;
		int sum = 0;
		for(int i = start; i <= stop; i++){
			if(i%a == 0){
				System.out.println("i=" + i);
				count++;
				sum = sum + i;
			}
		}
		System.out.println("count=" + count);
		System.out.println("sum=" + sum);
	}
}

        2、while循环控制

                基本语法:

循环变量初始化;
while(循环条件){
    循环体(语句);
    循环变量迭代;
}

                while循环也有四要素,只是四要素位置不同。 

                流程图:

                

import java.util.Scanner;
public class lx0022{
	public static void main(String[] args){
		Scanner myScanner = new Scanner(System.in);
		System.out.println("输入开始值:");
		int start = myScanner.nextInt();
		System.out.println("输入结束值:");
		int stop = myScanner.nextInt();
		System.out.println("输入倍数:");
		int a = myScanner.nextInt();

		int count = 0;
		int sum = 0;
		int i = start;
		while(i <= stop){
			if(i%a == 0){
				System.out.println("i=" + i);
				count++;
				sum = sum + i;
			}
			i++;
		}
		System.out.println("count=" + count);
		System.out.println("sum=" + sum);
	}
}

        3、do_while循环控制

                基本语法:

循环变量初始化;
do{
    循环体(语句);
    循环变量迭代;
}while(循环条件);

                说明:

                        a)do while是关键字;

                        b) 也有循环四要素,只是位置不一样;

                        c)先执行,再判断:一定会执行一次。

                流程图:

                

public class lx0023{
	public static void main(String[] args){
		int i = 0;
		int a = 0;
		do{
			if(i % 5 == 0 && i % 3 !=0){
				System.out.println("i=" + i);
				a++;
			}
			i++;
		}while(i <= 200);
		System.out.println("共有" + a + "个");
	}
}

        4、循环嵌套练习代码

                统计三个班成绩情况

import java.util.Scanner;
public class lx0024{
	public static void main(String[] args){

		//统计三个班及格人数情况
		Scanner myScanner = new Scanner(System.in);

		int passNum = 0;
		double allsum = 0;
		for(int i = 1; i <= 3; i++){
			System.out.println("请输入" + i + "班成绩");
			double sum = 0;
			for(int j = 1; j <= 5; j++){
				System.out.println(i + "班第" + j + "个同学成绩为:");
				int score = myScanner.nextInt();
				sum = sum + score;
				allsum = allsum + score;
				if(score >= 60)
					passNum++;
			}
			System.out.println(i + "班总成绩为" + sum + ",平均成绩为" + sum/5);
		}
		System.out.println("年级及格人数为:" + six + ",年级平均成绩为:" + allsum/15);	}
}

                九九乘法表

import java.util.Scanner;
public class lx0024{
	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 + " = " + i*j + "\t");
			}
			System.out.println("\n");
		}
	}
}

                空心金字塔

import java.util.Scanner;
public class lx0024{
	public static void main(String[] args){
		//打印空心金字塔
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入要打印金字塔的层数:");
		int a = myScanner.nextInt();
		for(int i = 1;i <= a; i++){
			for(int k = 1; k <= a - i; k++)
				System.out.print(" ");

				for(int j = 1;j <= 2 * i - 1; j++){
					if(j == 1 || j == 2 * i - 1 || i = a){
						System.out.print("*");
					}else{
						System.out.print(" ");
					}
		 		}
		 	System.out.println();
		}
	}
}

四、跳转控制语句break、continue和return 

        1、break

                基本介绍:break语句用于终止某个语句块的执行,一般使用在switch或者三种循环中。

                基本语法:

{
    ……;
    break;
    ……;
}

                注意事项和细节说明:

                    a)break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止哪一层语句                                块;

                    b)实际开发尽量不要使用(可读性会变差);

                    c)label1: ...... --> break label1; ;

                    d)如果break后面没有指定标签,默认最后一个标签。

import java.util.Scanner;
public class lx0026{
	public static void main(String[] args){
		for(int i = 0; i < 10; i++){
			if(i == 3){
				break;
			}
			System.out.println("i=" + i);
		}
	}
}

        2、continue

                基本介绍:continue语句用于结束本次循环,继续执行下一次循环

                也可以通过标签指明要跳过的是那一层循环。

                基本语法:

{
    ……;
    continue;
    ……;
}
public class lx0027{
	public static void main(String[] args){
        int i = 1;
        while(i <= 4){
            i++;
            if(i == 2){
                continue;
            }
            System.out.println("i=" + i);
        }
	}
}

        3、return 

                基本介绍:return表示跳出所在的方法。

                注意:如果在main方法里表示直接跳出程序。

代码自己手动敲一遍理解更深哦! 

  • 26
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值