Java开发零基础篇:day03 选择语句和循环语句

选择结构

顺序结构

如果代码里没有流程控制,程序是按照书写的格式从上而下一行一行执行的,一条语句执行完之后继续执行下一条语句,中间没有判断和跳转,直到程序的结束。

public class Demo16 {
    public static void main(String[] args) {
        System.out.println("A");
        System.out.println("B");
        System.out.println("C");
        System.out.println("D");
    }
}

上面的代码无论怎么运行,程序的输出顺序总是ABCD。

但是,我们的程序应该像一个人的人生轨迹一样,会面临很多分岔路的选择, 一旦下定决心走某一条路,就不能再回头。

选择结构

选择结构也被称为分支结构。代码根据逻辑判断,存在多个不同的结果,此时就会产生不同的选择,不 同的选择执行不同的代码。

Java中存在两种选择结构语句:

(1)if 语句

(2)switch 语句

if语句

语义:如果。。。那么。。。

if(bolean表达式){
    语句体;
}

if后面的{}表示一个整体—代码块,称之为语句体;

当boolean表达式为true,才执行这里的代码块。

注意:if(boolean表达式)后面是没有分号的。

public class Demo17 {
    public static void main(String[] args) {
        int a = 7;
        System.out.println("begin");
        if (a > 5) {
            System.out.println("a大于5");
        }
        System.out.println("and");
        if (a > 10) {
            System.out.println("a大于10");
        }
        System.out.println("end");
    }
}

控制台输出:

begin
a大于5
and
end

if-else语句

语义:如果。。。那么。。。否则。。。

if(boolean表达式){
    语句体1;
}else{
    语句体2;
}

如果boolean表达式结果为true,就执行语句体1,否则执行语句体2。

public class Demo18 {
    public static void main(String[] args) {
        int a = 7;
        System.out.println("begin");
        if (a % 2 == 0) {
            System.out.println("a是偶数");
        }else{
            System.out.println("a是奇数");
        }
        System.out.println("end");
    }
}

控制台输出:

begin
a是奇数
end

if-else if-else语句

语义:如果。。。那么。。。如果。。。那么。。。否则。。。

if(boolean表达式1){
    语句体1;
}else if(boolean表达式2){
    语句体2;
}else{
    语句体3;
}

 
public class Demo19 {
    public static void main(String[] args) {
        int a = 7;
        if (a > 5) {
            System.out.println("a>5");
        }else if(a < 10){
            System.out.println("a<10");
        }else {
            System.out.println("a>2");
        }
    }
}

控制台输出:

a>5

(1)根据输入的一个数字,判断是星期几?

public class Demo20 {
    public static void main(String[] args) {
        int day = 7;
        if (day == 1) {
            System.out.println("星期一");
        }else if (day == 2) {
            System.out.println("星期二");
        }else if (day == 3) {
            System.out.println("星期三");
        }else if (day == 4) {
            System.out.println("星期四");
        }else if (day == 5) {
            System.out.println("星期五");
        }else if (day == 6) {
            System.out.println("星期六");
        }else if (day == 7) {
            System.out.println("星期日");
        }else{
            System.out.println("错误");
        }
    }
}

控制台输出:

星期日

switch语句

上面使用if-elseif-else完全没问题,但是对于这种判断条件是否等于某一个数值的,我们有另一种更简单的分支语句:switch语句,其格式如下:

switch(整型表达式){
    case 值1:
        语句体1;
        break;
    case 值2:
        语句体2;
        break;
    case 值3:
        语句体3;
        break;
    default:
        语句体4;
        break;
}

使用注意:

(1)整型表达式的类型:byte,short,char,int;

(2)Java5开始支持枚举;

(3)Java7开始支持String;

(4)case之后的表达式结果必须是常量;

(5)case表示执行代码的入口,一旦进入某个入口后,代码会忽略掉后面其他case,代码会一直往下执行,直到遇到break或return。(switch的穿透效果)。

public class Demo21 {
    public static void main(String[] args) {
        int day = 3;
        switch(day){
            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;
        }
    }
}

控制台输出:

星期三

效果等价于if-elseif-elseif-else语句

使用场景:所有的选择语句都可以使用if语句,switch语句只适合做等值判断。

循环结构

在满足循环条件的情况下,重复执行某一段代码,这段被重复执行的代码被称为循环体语句。

(1)while语句

(2)do while语句

(3)for语句

注:三种循环结构可以完成相同的功能,仅仅只是语法上有差异。

while语句

while(boolean表达式){
    循环体;
}

特点:

先判断boolean表达式:

若为false,跳过循环体;

若为true,执行循环体,执行完,再重新判断boolean表达式。

(1)打印10行Hello

public class Demo22 {
    public static void main(String[] args) {
        int a = 0;
        while(a<10){
            a++;
            System.out.println("Hello");
        }
    }
}

(2)从1打印到100

public class Demo23 {
    public static void main(String[] args) {
        int a = 1;
        while(a <= 100){
            System.out.println(a);
            a++;
        }
    }
}

(3)计算100以内正整数之和

public class Demo24 {
    public static void main(String[] args) {
        int a = 1;
        int sum = 0;
        while(a <= 100){
            sum += a;
            a++;
        }
        System.out.println(sum);
    }
}

do while语句

do{
    循环体;
}while(boolean表达式);

特点

先执行一次循环体,再判断表达式:

若为true,就执行循环体,再重新判断boolean表达式 ;

若为false,跳过循环体。

while和do while的区别

do while是先执行后判断,即使判断条件为false,该循环至少会执行一次

(1)打印10行Hello

public class Demo25 {
    public static void main(String[] args) {
        int a = 1;
        do {
            System.out.println("Hello");
            a++;
        }while (a<=10);
    }
}

(2)从1打印到100

public class Demo26 {
    public static void main(String[] args) {
        int a = 1;
        do {
            System.out.println(a);
            a++;
        }while (a<=100);
    }
}
(3)计算100以内正整数之和
public class Demo27 {
    public static void main(String[] args) {
        int a = 1;
        int sum = 0;
        do {
            sum += a;
            a++;
        }while (a<=100);
        System.out.println(sum);
    }
}

for语句

for(初始化语句;boolean表达式;循环后操作语句){
    循环体;
}

 特点:

初始化语句:只在循环开始时执行一次,一般是定义一个变量,并赋值。

boolean表达式:表达式为false时,循环终止,为true,才执行循环体。

循环后操作语句:循环体执行后会调用该语句,一般是变量的递增或递减操作。

执行顺序:

(1)初始化语句

(2)boolean表达式:

若为false:跳过循环体

若为true:

(3)执行循环体

(4)循环后操作语句:boolean表达式

public class Demo28 {
    public static void main(String[] args) {
        int a = 1;
        int sum = 0;
        for (int i = 0;i<100;i++){
            sum += a;
            a++;
        }
        System.out.println(sum);
    }
}
死循环:表示循环的boolean表达式一直未true,重复执行循环体。

while循环死循环

while(true){
    循环体;
}

do while循环死循环

do{
    循环体;
}while(true);

for循环死循环

for(;;){
    循环体;
}

控制循环

break

break表示结束当前所在的循环。

(1)从1输出到10,当迭代变量为7,就停止循环。

public class Demo29 {
    public static void main(String[] args) {
        for(int i = 1;i<=10;i++){
            if (i == 7) {
                break;
            }
            System.out.println(i);
        }
    }
}

控制台输出:

1
2
3
4
5
6

注意:break之后的语句执行不了,所以不能编写。

return

return表示结束当前循环所在的方法,方法都结束了,循环也就结束了。

public class Demo30 {
    public static void main(String[] args) {
        for(int i = 1;i<=10;i++){
            if (i == 7) {
                return;
            }
            System.out.println(i);
        }
    }
}

控制台输出:

1
2
3
4
5
6

continue

continue表示跳过当前这一次循环,执行循环之后的操作语句,进入下一次循环操作。

public class Demo31 {
    public static void main(String[] args) {
        for(int i = 1;i<=10;i++){
            if (i == 7) {
                continue;
            }
            System.out.println(i);
        }
    }
}

控制台输出:

1
2
3
4
5
6
8
9
10

以上就是Java入门第三天的全部内容了。

资料文档地址:Java开发零基础篇:Day03选择语句和循环语句.pdf

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半晴Miko

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值