day06 switch&&循环结构

本文介绍了Java中的switch语句及其支持的变量类型,详细讲解了while、do...while和for循环的用法,包括各种循环结构的实例,如输出数字、计算求和以及使用增强for循环。此外,还提到了break和continue在循环控制中的作用。

switch

switch多选择结构

switch case 语句判断一个变量与一系列值中的某个值是否相等,每一个值称为一个分支。

switch语句中的变量类型可以是:

  1. byte、short、int或者char。

  2. 从 Java SE 7 开始switch 支持字符串 String 类型了。

  3. 同时case标签必须为字符串常量或者字面量。

package com.xiaoluo.struct;

import java.util.Scanner;

public class SwitchDemo01 {
    public static void main(String[] args) {

         char grade = 'A';
         switch (grade){
            case 'A':
                System.out.println("A");
                break;//如果在case语句后面没有加上break语句就会出现case穿透现象 后面的case语句会全部执行
            case 'B' :
                System.out.println("B");

            case 'C':
                System.out.println("C");

        }

    }
}

JDK 7 之后支持String类型

package com.xiaoluo.struct;

import java.util.Scanner;

public class SwitchDemo02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的名字");
        String name = scanner.nextLine();//jdk 7 以后支持String类型的数据 字符的本质还是数字
        //反编译  java---class (字节码文件)-----反编译(IDEA)    (ctrl+shift+alt+s)
        switch (name){
            case "小罗":{
                System.out.println("大帅比");
                break;
            }
            case "小羊":{
                System.out.println("搞笑女");
                break;
            }
            case"狂神":{
                System.out.println("大丑比");
                break;
            }

        }
        scanner.close();

    }
}

反编译

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

循环结构

while循环

do…while循环

for循环

在java5中引入了一种主要用于数组的增强型for循环。

while循环

最基本的循环

结构:

while(布尔表达式){
//循环内容
}
实例输出1-100
package com.xiaoluo.struct;

public class WhileDemo01 {
    public static void main(String[] args) {

        //输出1-100
        int x =0 ;
        while (x<100){
            x++;
            System.out.println(x);

        }


    }
}
死循环
package com.xiaoluo.struct;

public class WhileDemo02 {
    public static void main(String[] args) {
        while (true){//死循环
            //等待客户端链接
            //定时检查
            //...
            System.out.println("shabi");
        }
    }
}
计算1+2+3+4+…100的值
package com.xiaoluo.struct;

public class WhileDemo03 {
    public static void main(String[] args) {
        int sum=0;
        int i =0;
        while (i<100){
            i++;
            sum=sum+i;

        }
        System.out.println(sum);
    }
}

DO while

对于while而言,如果不满足条件,则不能进入循环,但是有时候我们需要即使不满足条件也至少执行一次。

do…while循环和while循环相似,不同的是,do…while循环至少会执行一次。

do{
//执行代码
}while(布尔表达式);

while和do…while的区别:

while先判断后执行,dowhile是先执行后判断。

Do…While总是保证循环体会被至少循环一次,这是他们的主要区别。

package com.xiaoluo.struct;

public class DoWhileDemo {
    public static void main(String[] args) {
        int i =0;
        int sum =0;
        do{//先执行
            i++;
            sum=sum+i;
        }while (i<100);//后判断至少执行了一次
        System.out.println(sum);
    }
}

while和do…while的区别:

while先判断后执行,dowhile是先执行后判断。

Do…While总是保证循环体会被至少循环一次,这是他们的主要区别。

package com.xiaoluo.struct;

public class DoWhileDemo02 {
    public static void main(String[] args) {
        int a=0;
        while (a<0){
            a++;
            System.out.println(a);
        }//这条语句没有输出结果,因为a<0不成立,所以没进入循环
        System.out.println("======================");
        do{
            System.out.println(a);
            a++;
        }while (a<0);//该语句输出0,虽然a<0不成立但是dowhile循环会先进行一次循环,所以输出0;
        
    }

}

For循环

for循环可以让循环结构更简单

格式

for(初始化;布尔表达式;更新)
{
//代码语句

}

for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构

for循环的执行次数实在执行前就确定的

package com.xiaoluo.struct;

public class ForDemo01 {
    public static void main(String[] args) {
        int i =0;
        int j;
        while (i<100){
            i+=2;
            System.out.println(i);
        }
        System.out.println("while循环结束==================");
        for(j=0;j<100;j++)
        {
            System.out.println(j);

        }
        System.out.println("for循环结束");
    }
}
//死循环
for( ; ; )
{


}

for循环有以下说明

最先执行初始化步骤,可以声明一种类型,但可初始化一个多个循环控制变量,也可以是空语句。

让毕业检测布尔表达式的值,如果是真,循环体被执行,如果是假循环终止,开始执行循环体后面的语句。

再次检测布尔表达式,循环执行上面的过程。

计算0-100奇数的和与偶数的和:

package com.xiaoluo.struct;

public class ForDemo02 {
    public static void main(String[] args) {
        int oddSum = 0;//奇数和
        int evenSum = 0;//偶数和
        for (int i = 0; i < =100; i++) {
            if(i%2!=0){//i取模不等于0.是奇数
                oddSum+=i;
            }
            else {//其他的数
                evenSum+=i;
            }

        }
        System.out.println("奇数的和"+oddSum);
        System.out.println("偶数的和"+evenSum);


    }
}

输出1-1000之间会被5整除的数,并且每行输出3个

package com.xiaoluo.struct;

public class ForDemo03 {
    public static void main(String[] args) {
        //输出1-1000之间能被5整除的数,并且每行输出3个
        for (int i = 1; i <= 1000; i++) {
            if (i%5==0){
                System.out.print(i+"\t");//不换行且加tab
            }
            if (i%(5*3)==0){
                System.out.print("\n");//换行
            }
        }
        //println 输出会换行
        //print 输出完不会换行
    }
}

输出 99乘法表

package com.xiaoluo.struct;

public class ForDemo04 {
    public static void main(String[] args) {
        int k = 0;
        for(int i=1;i<=9;i++){
            for (int j=1;j<=i;j++){//去掉重复
                k=i*j;
                System.out.print(i+"*"+j+"="+k);
                System.out.print("\t");
            }
            System.out.print("\n");
        }
    }
}

增强for循环

java5引入了一种主要用于数组或集合的增强型for循环。

语法:

for(声明语句:表达式)
{
   //代码句子

}
package com.xiaoluo.struct;

public class ForDemo05 {
    public static void main(String[] args) {
        int[] numbers = {10,20,30,40,50};//定义了一个数组

        for(int i =0;i<5;i++){
            System.out.println(numbers[i]);
        }
        System.out.println("==================");
        //遍历数组的元素
        for(int x:numbers)
        {
            System.out.println(x);

        }
    }
}

break continue

break在任何循环语句的主体部分,均可以用break控制循环的流程。用break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)

package com.xiaoluo.struct;

public class BreakDemo01 {
    public static void main(String[] args) {
        int i =0;
        while (i<100){
            i++;
            System.out.println(i);
            if(i==30){
                break;//break只是跳出循环并没有结束程序
            }
        }
        System.out.println("到此结束");
    }

}
package com.xiaoluo.struct;

public class ContinueDemo01 {
    public static void main(String[] args) {
        //continue语句在循环语句中,用于终止某次循环的过程,即跳过循环中尚未执行的语句,接着进行下一次时候执行循环的判定。
        int i=0;
        while(i<100)
        {
            i++;
            if(i%10==0)
            {
                System.out.println();
                continue;
            }
            System.out.print(i+"\t");
        }

    }
    }

continue语句在循环语句中,用于终止某次循环的过程,即跳过循环中尚未执行的语句,接着进行下一次时候执行循环的判定。

测试

画一个三角形

package com.xiaoluo.struct;

public class TestDemo01 {
    public static void main(String[] args) {
        //打印一个三角形
        for (int i = 0; i < 5; i++) {
            for (int j=5;j>=i;j--){
                System.out.print(" ");
            }
            for (int j=1;j<=i;j++){
                System.out.print("*");
            }
            for (int j=1;j<i;j++){
                System.out.print("*");
            }
            System.out.println();

        }
    }
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值