Java基础知识4

来源:互联网 发布:mac好用的流程图软件 编辑:程序博客网 时间:2024/06/14 04:34

选择流程控制语句

顺序结构的基本使用
概述:是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的
顺序流程流程图
这里写图片描述

public class OrderDemo {    public static void main(String[] args) {        System.out.println("开始");        System.out.println("语句A");        System.out.println("语句B");        System.out.println("语句C");        System.out.println("结束");    }}

IF语句

if语句格式1及执行流程

if(关系表达式) {
语句体
}
执行流程:
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体

if语句格式1流程图
这里写图片描述

public class IfDemo {    public static void main(String[] args) {        System.out.println("开始");        // 定义两个变量        int a = 10;        int b = 20;        if (a == b) {            System.out.println("a等于b");        }        int c = 10;        if (a == c) {            System.out.println("a等于c");        }        System.out.println("结束");    }}

if语句格式2及执行流程

if语句第二种格式:
if(关系表达式) {
语句体1;
}else {
语句体2;
}
执行流程
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体1
如果是false就执行语句体2

if语句格式2流程图
这里写图片描述

public class IfDemo2 {    public static void main(String[] args) {        System.out.println("开始");        // 判断给定的数据是奇数还是偶数        // 定义变量        int a = 100;        // 给a重新赋值        a = 99;        if (a % 2 == 0) {            System.out.println("a是偶数");        } else {            System.out.println("a是奇数");        }        System.out.println("结束");    }}

if语句格式3及执行流程

if语句第三种格式:
if(关系表达式1) {
语句体1;
}else if (关系表达式2) {
语句体2;
}

else {
语句体n+1;
}
执行流程
首先判断关系表达式1看其结果是true还是false
如果是true就执行语句体1
如果是false就继续判断关系表达式2看其结果是true还是false
如果是true就执行语句体2
如果是false就继续判断关系表达式…看其结果是true还是false

如果没有任何关系表达式为true,就执行语句体n+1

if语句格式3流程图
这里写图片描述

public class IfDemo3 {    public static void main(String[] args) {        // x和y的关系满足如下:        // x>=3 y = 2x + 1;        // -1<=x<3 y = 2x;        // x<=-1 y = 2x – 1;        // 根据给定的x的值,计算出y的值并输出。        // 定义变量        int x = 5;        /*        int y;        if (x >= 3) {            y = 2 * x + 1;        } else if (x >= -1 && x < 3) {            y = 2 * x;        } else if (x <= -1) {            y = 2 * x - 1;        }else {            y = 0;        }        */        int y = 0;        if (x >= 3) {            y = 2 * x + 1;        } else if (x >= -1 && x < 3) {            y = 2 * x;        } else if (x <= -1) {            y = 2 * x - 1;        }        System.out.println("y的值是:"+y);    }}

if语句实现获取两个数据的最大值

import java.util.Scanner;/* * 键盘录入两个数据,获取这两个数据的较大值 *  * 分析: *      A:看到键盘录入,我们就应该想到键盘录入的三步骤 *          导包,创建对象,接收数据 *      B:获取这两个数据的较大值,其实就是判断两个数据谁大,把大的输出就可以了。 *  * 导包: *      A:手动导包 *          import java.util.Scanner; *      B:鼠标点击红色叉叉,自动生成 *      C:快捷键(推荐) *          ctrl+shift+o */public class IfTest {    public static void main(String[] args) {        //创建对象        Scanner sc = new Scanner(System.in);        //接收数据        System.out.println("请输入第一个数据:");        int a = sc.nextInt();        System.out.println("请输入第二个数据:");        int b = sc.nextInt();        //采用if语句格式2实现        /*        if(a>b){            System.out.println("较大的值是:"+a);        }else {            System.out.println("较大的值是:"+b);        }        */        //拿到较大的值之后,我未必想直接输出,所以我们定义变量接收这个较大的值        int max;        if(a>b){            max = a;        }else {            max = b;        }        //可能做其他的操作        //max += 100;        System.out.println("较大的值是:"+max);    }}

if语句实现判断学生等级

import java.util.Scanner;/* * 键盘录入学生考试成绩,请根据成绩判断该学生属于哪个级别 * 90-100   优秀 * 80-90    好 * 70-80    良 * 60-70    及格 * 60以下 不及格 *  * 分析: *      A:键盘录入学生考试成绩 *          三步骤 *      B:通过简单的分析,我们决定采用if语句格式3来实现 *  * 程序一定要考虑周全了。 *      安全数据 *      边界数据 *      错误数据 */public class IfTest2 {    public static void main(String[] args) {        //创建对象        Scanner sc = new Scanner(System.in);        //接收数据        System.out.println("请输入学生的考试成绩:");        int score = sc.nextInt();        //if语句格式3        /*        if(score>=90 && score<=100){            System.out.println("你的成绩属于优秀");        }else if(score>=80 && score<90){            System.out.println("你的成绩属于好");        }else if(score>=70 && score<80){            System.out.println("你的成绩属于良");        }else if(score>=60 && score<70){            System.out.println("你的成绩属于及格");        }else {            System.out.println("你的成绩属于不及格");        }        */        //我们发现程序不够健壮,加入错误数据的判断        if(score<0 || score>100){            System.out.println("你的成绩是错误的");        }else if(score>=90 && score<=100){            System.out.println("你的成绩属于优秀");        }else if(score>=80 && score<90){            System.out.println("你的成绩属于好");        }else if(score>=70 && score<80){            System.out.println("你的成绩属于良");        }else if(score>=60 && score<70){            System.out.println("你的成绩属于及格");        }else {            System.out.println("你的成绩属于不及格");        }    }}

switch语句的格式及执行流程

执行流程
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

switch语句执行流程图
这里写图片描述
switch语句实现根据数字输出对应星期

import java.util.Scanner;/* * switch语句格式: * switch(表达式) { *      case1: *          语句体1; *          break; *      case2: *          语句体2; *          break; *      ... *      default: *          语句体n+1; *          break; * }public class SwitchDemo {    public static void main(String[] args) {        //创建键盘录入对象        Scanner sc = new Scanner(System.in);        //接收数据        System.out.println("请输入一个数字(1-7):");        int weekday = sc.nextInt();        //switch语句实现选择        switch(weekday) {        case 1:            System.out.println("星期一");            break;        case 2:            System.out.println("星期二");            break;        case 3:            System.out.println("星期三");            break;        case 4:            System.out.println("星期四");            break;        case 5:            System.out.println("星期五");            break;        case 6:            System.out.println("星期六");            break;        case 7:            System.out.println("星期日");            break;        default:            System.out.println("你输入的数字有误");            break;        }    }}

循环流程控制语句

for循环的格式及基本使用

for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
}
执行流程

A:执行初始化语句
B:执行判断条件语句,看其结果是true还是false
如果是false,循环结束。
如果是true,继续执行。
C:执行循环体语句
D:执行控制条件语句
E:回到B继续

for循环的执行流程图
这里写图片描述

public class ForDemo {    public static void main(String[] args) {        //原始写法        System.out.println("HelloWorld");        System.out.println("HelloWorld");        System.out.println("HelloWorld");        System.out.println("HelloWorld");        System.out.println("HelloWorld");        System.out.println("HelloWorld");        System.out.println("HelloWorld");        System.out.println("HelloWorld");        System.out.println("HelloWorld");        System.out.println("HelloWorld");        System.out.println("-------------------------");        //用循环改进        for(int x=1; x<=10; x++) {            System.out.println("HelloWorld");        }    }}

for循环实现获取指定范围数据

public class ForTest {    public static void main(String[] args) {        //原始做法        System.out.println(1);        System.out.println(2);        System.out.println(3);        System.out.println(4);        System.out.println(5);        System.out.println("-------------");        //用循环改进        for(int x=1; x<=5; x++) {            System.out.println(x);        }        System.out.println("-------------");        //1-5的数据我们获取到了,如何获取5-1呢?        for(int x=5; x>=1; x--){            System.out.println(x);        }    }}

for循环实现1-5求和

public class ForTest2 {    public static void main(String[] args) {        //定义求和变量,初始化值是0        int sum = 0;        //获取1-5之间的数据,用for循环实现        for(int x=1; x<=5; x++) {            //把每一次获取到的数据,累加起来就可以了            sum += x;        }        //输出求和结果        System.out.println("sum:"+sum);    }}

for循环实现1-100之间偶数和

public class ForTest3 {    public static void main(String[] args) {        //定义求和变量,初始化值是0        int sum = 0;        //获取1-100之间的数据,用for循环实现        for(int x=1; x<=100; x++) {            //把获取到的数据进行判断,看是否是偶数            if(x%2 ==0) {                sum += x;            }        }        //输出求和结果        System.out.println("sum:"+sum);    }}

for循环实现在控制台打印水仙花数

public class ForTest4 {    public static void main(String[] args) {        //通过循环获取到每一个三位数        for(int x=100; x<1000; x++) {            //获取个位,十位,百位            int ge = x%10;            int shi = x/10%10;            int bai = x/10/10%10;            //让每个位上的立方和相加,并和该数据进行比较,如果相等,就说明该数据是水仙花数,在控制台输出            if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) {                System.out.println(x);            }        }    }}

while循环的格式及基本使用
基本格式
while(判断条件语句) {
循环体语句;
}
扩展格式
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
执行流程图
这里写图片描述

public class WhileDemo {    public static void main(String[] args) {        //输出10次HelloWorld        /*        for(int x=1; x<=10; x++) {            System.out.println("HellloWorld");        }        */        //while循环实现        int x=1;        while(x<=10) {            System.out.println("HellloWorld");            x++;        }    }}

while循环实现1-100之间的数据和

public class WhileTest {    public static void main(String[] args) {        //回顾for循环实现        /*        //定义求和变量        int sum = 0;        //获取1-100之间的数据        for(int x=1; x<=100; x++) {            //累加            sum += x;        }        System.out.println("1-100的和是:"+sum);        */        //while循环实现        //定义求和变量        int sum = 0;        int x = 1;        while(x<=100) {            sum += x;            x++;        }        System.out.println("1-100的和是:"+sum);    }}

do……while循环的格式及基本使用

基本格式
do {
循环体语句;
}while((判断条件语句);
扩展格式
初始化语句;
do {
循环体语句;
控制条件语句;
} while((判断条件语句);

执行路程图
这里写图片描述

public class DoWhileDemo {    public static void main(String[] args) {        //输出10次 HelloWorld        /*        for(int x=1; x<=10; x++) {            System.out.println("HelloWorld");        }        */        //do...while改写        int x=1;        do {            System.out.println("HelloWorld");            x++;        }while(x<=10);    }}

三种循环的区别

虽然可以完成同样的功能,但是还是有小区别:
do…while循环至少会执行一次循环体。
for循环和while循环只有在条件成立的时候才会去执行循环体
for循环语句和while循环语句的小区别:
使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。

控制循环语句

控制跳转语句break

break的使用场景和作用

break的使用场景:
在选择结构switch语句中
在循环语句中
离开使用场景的存在是没有意义的
break的作用:
跳出单层循环

public class BreakDemo {    public static void main(String[] args) {        //break;        for(int x=1; x<=10; x++) {            if(x == 3) {                break;            }            System.out.println("HelloWorld");        }    }}

控制跳转语句continue

continue的使用场景和作用

在循环语句中
离开使用场景的存在是没有意义的
continue的作用:
单层循环对比break,然后总结两个的区别
break 退出当前循环
continue 退出本次循环

public class ContinueDemo {    public static void main(String[] args) {        //continue;        for(int x=1; x<=10; x++) {            if(x == 3) {                //break;                continue;            }            System.out.println("HelloWorld");        }    }
原创粉丝点击