学习黑马java day04

目录

流程控制语句

顺序结构

 分支结构

if语句:

 switch语句

default的位置和省略:

case穿透:

switch新特性:jdk12及以上

switch和if的第三种格式的各自使用场景

循环结构

for循环

while循环

do...while循环


流程控制语句

顺序结构

从上至下,依次执行。

 分支结构

if语句:

        if(关系表达式){

                语句体;

        }//bool类型可直接作为判断条件。

        if(关系表达式){

                语句体1;

        }else{

                语句体2;

        }

        if(关系表达式1){

                语句体1;

        }else if(关系表达式2){

                语句体2;

        }

        ……

         else{

                语句体n+1;

        }

        

 switch语句

格式:

        switch(表达式){

                case 值1:

                        语句体1;

                        break;

                case 值2:

                        语句体2;

                        break;

                ……

                default:

                        语句体n+1;

                        break;                       

        }

default的位置和省略:

                default可以省略,语法不影响,但不建议省略;

                default不一定要写在最下面,可以写在任意位置;

case穿透:

                break一定不能省略;否则就会导致case穿透。没有break程序会持续执行case语句,直到出现break或者出现大括号才会停止。

                使用场景:多个case语句体重复,考虑利用case穿透去简化代码。

  •         练习

        题目:键盘录入星期几,并输出工作日和休息日。

        

package com.itheima.test;

import java.util.Scanner;

public class test01 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入星期数:");
        int a = sc.nextInt();
        switch (a){
            case 1,2,3,4,5 -> System.out.println("工作日");
            case 6,7 -> System.out.println("休息日");
            default -> System.out.println("没有这个星期数");
        }

    }
}
switch新特性:jdk12及以上

switch书写可以利用箭头简化。如下图,case中只有一个语句其实也可以把括号省略。

package com.itheima.test;

import java.util.Scanner;

public class test01 {

    public static void main(String[] args) {
        int number = 1;
        switch (number){
            case 1 ->{
                System.out.println("一");
            }
            case 2 ->{
                System.out.println("二");
            }
            case 3 ->{
                System.out.println("三");
            }
            default -> {
                System.out.println("没有这种选项");
            }
        }

    }
}
switch和if的第三种格式的各自使用场景

                if的第三种格式:一般用于对范围的判断

                switch:把有限个数据一一列举出来

循环结构

for循环

        格式:for(int i=1;i<=10;i++){

                        语句体;

                  }

        利用变量i的值控制循环次数。

  •         练习

                题目:求和,求1-5的和

public class test01 {

    public static void main(String[] args) {
        int i = 1;
        int sum =0;
        for(i=1;i<=5;i++){
            sum=sum+i;
        }
        System.out.println("1-5的和为:"+sum);

    }
}

while循环

        格式:while(条件判断语句){

                        循环语句体;

                        条件控制语句;

                }

                //若条件判断语句为真,则进入循环体。若为假,则循环结束。

for与while的对比:知道循环次数或者循环范围->for循环;不知道循环次数或者循环范围,只知道循环的结束条件->while循环

  •         练习:

       题目:珠穆朗玛峰的高度(8844430mm),假如有一张足够大的纸,它的厚度是0.1mm,请问折叠多少次后,可以折成珠穆朗玛峰的高度?

public class test01 {

    public static void main(String[] args) {
        double i=0.1;//纸张的初始厚度
        int count=0;//记录折纸的次数
        while(i<=8844430){
            i=i*2;
            count++;
        }
        System.out.println("需要折:"+count+"次");
    }
}

        题目2:给一个整数x,如果x是回文整数打印true,反之,打印false。回文数:正着读和反着读一样。

package com.itheima.test;

import java.util.Scanner;

public class test01 {

    public static void main(String[] args) {
       // 给一个整数x,如果x是回文整数打印true,反之,打印false。回文数:正着读和反着读一样。
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int x= sc.nextInt();
        //定义一个临时变量来存储这个数字
        int temp = x;
        int num = 0;
        //判断是否是回文数,将数x从右往左的顺序打印出来,判断x与新打印的数字是否相同?
        while(x!=0){
            int ge = x%10;//取该整数的个位;
            x = x/10;//把x的值修改一下;
            num =num *10+ge;
        }
        System.out.println(num==temp);
    }
}

        题目3:求商和余数

                给定两个整数,被除数和除数(都是整数,且不超过int的范围)。将两数相除,要求不使用乘法、除法和%运算符来得到商和余数。

package com.itheima.test;

import java.util.Scanner;

public class test01 {

    public static void main(String[] args) {
        //给定两个整数,被除数和除数(都是整数,且不超过int的范围)。将两数相除,要求不使用乘法、除法和%运算符来得到商和余数。
        //思路:循环减,被除数一直减除数,直到得到的数字比除数小。
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入被除数:");
        int dividend = sc.nextInt();
        System.out.println("请输入除数:");
        int divisor = sc.nextInt();
        int count = 0;
        while(dividend>=divisor){
            dividend=dividend-divisor;
            count++;
        }
        //dividend记录的就是余数
        System.out.println("商为:"+count);
        System.out.println("余数为:"+dividend);
    }
}

do...while循环

        格式:do{

                        循环体语句;

                        条件控制语句;

                }while(条件判断语句);

//先走一次循环体语句,在进行条件判断,若判断为true那么执行循环体,否则,跳出循环。

  • 14
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值