JAVA学习笔记(11){流程控制语句}

本文详细介绍了Java编程中的基本结构,包括顺序结构、分支结构(if和switch语句)和循环结构(for、while和dowhile循环)。每个结构都有相应的示例代码和练习题,旨在帮助学习者掌握这些基本概念,并提供了LeetCode练习题以加深理解和应用。
摘要由CSDN通过智能技术生成

目录

顺序结构

分支结构

if语句

结构一练习:

结构二练习:

switch语句

练习:

 switch的小知识点

练习: 

循环结构

for循环

 练习:

while循环

练习: 

do while循环

for和while的区别:

leetcode练习题:​​​​​​​​​​​​​​

顺序结构

顺序结构语句是JAVA程序默认的执行流程,按照代码的先后顺序,从上到下依次执行

public class 顺序结构
{
    public static void main(String[] args) 
    {
        System.out.println("hello world");
        System.out.println("加油中国!");
        System.out.println("你好世界");
    }
}

这个结构就是平常的程序运行,从上至下运行。

分支结构

if语句

 注意事项:在语句体中,如果只有一句代码,花括号可以省略不写。

结构一练习:

一场考试,如果你的考试分数大于50,班花小红会做你女朋友

import java.util.Scanner;
public class if语句
{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入我的分数");
        int Grades= sc.nextInt();
        if(Grades>50)
        {
            System.out.println("小红是我的女朋友");
        }
    }
}

自动驾驶判断驾驶灯的状态决定车的姿态

public class if语句
{
    public static void main(String[] args)
    {
        boolean Green_light=false;
        boolean Red_light=false;
        boolean Yellow_light=true;
        if(Green_light==true)
        {
            System.out.println("冲冲冲");
        }
        if(Yellow_light==true)
        {
            System.out.println("慢慢慢");
        }
        if (Red_light==true)
        {
            System.out.println("停停停");
        }
    }
}

结构二练习:

键盘录入一个整数,表示身上的钱。如果大于等于100块,就是网红餐厅,否则就吃经济实惠的沙县小吃

import java.util.Scanner;
public class if语句
{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        int Money= sc.nextInt();
        System.out.println("请输入身上的钱");
        if(Money>=100)
        {
            System.out.println("网红餐厅");
        }
        else
        {
            System.out.println("沙县小吃");
        }
    }
}

switch语句

注意事项:switch的语句break不能忘记

public class switch语句 {
    public static void main(String[] args) {
        String noodles = "兰州拉面";
        switch (noodles) {
            case "兰州拉面":
                System.out.println("吃兰州拉面");
                break;
            case "武汉热干面":
                System.out.println("吃武汉热干面");
                break;
            case"北京炸酱面":
                System.out.println("吃北京炸酱面");
                break;
            case"陕西油泼面":
                System.out.println("吃陕西油泼面");
                break;
            default:
                System.out.println("吃方便面");
                break;
        }
    }
}

练习:

需求:键盘录入周几,显示今天的减肥活动,周一:跑步,周二;游泳,周三:慢走,周四:动感单车,周五:拳击,周六:爬山,周七:好好吃一顿。

import java.util.Scanner;
public class switch练习
{
    public static void main(String[] args)
    {
        Scanner Sc=new Scanner(System.in);
        int Week= Sc.nextInt();
        switch(Week)
        {
            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("爬山");
            case 7:
                System.out.println("好好吃一顿");
            default:
                System.out.println("没有这个星期");
        }
    }
}

 switch的小知识点

default确实可以省略,但是这也代表了switch的值无匹配对象时,switch语句不会执行

default语句可以写在任意位置,但是通常写在语句末尾

default语句执行流程”条件语句与case的值匹配,如果匹配上了,那么则执行case语句后面的语句,如果匹配上则继续向下匹配,除非遇到break则跳出switch语句,否则它会遍历整个swicth语句,直到switch语句结束

switch语句在jdk12版本进行了优化,可以使用以下方式简写代码,无需break

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

练习: 

键盘录入星期数,输出工作日,休息日。(1~5)工作日,(6~7)休息日。

import java.util.Scanner;
public class switch练习
{
    public static void main(String[] args)
    {
        Scanner Sc=new Scanner(System.in);
        System.out.println("请输入今天星期几");
        int day=Sc.nextInt();
        switch (day)
        {
            case 1,2,3,4,5-> System.out.println("工作日");
            case 6,7-> System.out.println("休息日");
        }
    }
}

在实际开发中,如果我们需要在多种情况下选择其中一个,就可以使用switch语句。当我们拨打了默写服务电话时,一般会有案件选择。假设现在我们拨打了一个机票预订电话。电话中语音提示:1.机票查询,2.机票预订,3.机票改签,4.退出服务。其他按键也是退出服务。请使用switch模拟该业务逻辑。

import java.util.Scanner;
public class switch练习
{
    public static void main(String[] args)
    {
        Scanner Sc=new Scanner(System.in);
        System.out.println("请输入你需要什么服务");
        int Num=Sc.nextInt();
        switch (Num)
        {
            case 1-> System.out.println("机票查询");
            case 2-> System.out.println("机票预订");
            case 3-> System.out.println("机票改签");
            default -> System.out.println("退出服务");
        }
    }
}

循环结构

for循环

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

 练习:

打印5次HelloWorld

public class for循环初试
{
    public static void main(String[] args)
    {
        for(int i=0;i<5;i++)
        {
            System.out.println("HelloWorld");
        }
    }
}

打印1~5

public class 打印
{
    public static void main(String[] args)
    {
        for (int i=1;i<=5;i++)
        {
            System.out.println(i);
        }
    }
}

打印5~1

public class 倒打印
{
    public static void main(String[] args)
    {
        for (int i=5;i>=1;i--)
        {
            System.out.println(i);
        }
    }
}

在实际开发中,需要重复执行的代码,会选择循环实现。

比如玩游戏的时候,如果网不好会经常断线重连。那么断线重连这个业务逻辑最多只写5次,请用代码实现

public class 断线重连
{
    public static void main(String[] args)
    {
        for (int i=1;i<=5;i++)
        {
            System.out.println("第"+i+"次"+"执行断线重连");
        }
    }
}

求1~5之间的和

public class 求和
{
    public static void main(String[] args)
    {
        int Num=0;
        for (int i=1;i<=5;i++)
        {
            Num+=i;
            System.out.println(Num);
        }
    }
}

如果把这里的Num定义在循环里面,Num每次都会被重新定义为0

求1~100之间的偶数和

public class 偶数求和
{
    public static void main(String[] args)
    {
        int Num=0;
        for(int i=1;i<=100;i++)
        {
            if(i%2==0)
            {
                Num+=i;
                System.out.println(Num);
            }
        }
    }
}

键盘录入两个数字,表示一个范围。统计这个范围中。既能被3整除,又能被5整除数字有多少个?

import java.util.Scanner;
public class 范围统计
{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入最小值");
        int x= sc.nextInt();
        System.out.println("请输入最大值");
        int y= sc.nextInt();
        for (int i=x;i<y;i++)
        {
            if (i%3==0&&i%5==0)
            {
                System.out.println(i);
            }
        }
    }
}

while循环

while(条件控制语句)
{
循环体语句;
条件控制语句;
}

打印1~100

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

练习: 

世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问我折叠多少次,可以折成珠穆朗玛峰的高度?

public class 折纸循环
{
    public static void main(String[] args)
    {
        double h=0.1;
        int t=0;
        while(h<8844430)
        {
            h=h*2;
            t++;
        }
        System.out.println("一共折了"+t+"次");
    }
}

do while循环

初始化语句;
do{
   循环语句;
   条件控制语句;
  }
while(条件控制语句)

先执行后判断,无论while的条件语句是否成立

 

for和while的区别:

for循环中,控制循环的变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了

while循环中,控制循环的变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量可以继续使用

leetcode练习题:

给你一个整数x。如果x是一个回文整数,打印true,否则,返回false。解释:回文数是指正序(从左到右)和倒序(从右到左)读都是一样的整数。例如,121是回文,而123不是。

import java.util.Scanner;
public class 回文数
{
    public static void main(String[] args)
    {
        Scanner Sc=new Scanner(System.in);
        System.out.println("请输入一个整数");
        int x= Sc.nextInt();
        int temp=x;
        int num=0;
        while(x!=0)
        {
            int ge=x%10;
            x=x/10;
            num=num*10+ge;
        }
        System.out.println(num);//倒过来之后的数字
        System.out.println(temp==num);
    }
}

首先调用Scanner类,自行输入自己想判断的是否为回文数的数字,先看while的循环体,我们定义一个ge的变量用于存放这个被检测数的个位,被判断数的个位为这个除以10的余数,同时让x/10,这样每一次循环,我们都能取到的是都是末端数字,并让num承接倒过来的数字,但是因为我们在循环中不断让x/10,所以x最后会变为0,所以我们需要定义一个变量承接一开始被检测数,并由它代替x去判断是否倒过来还与没有倒过来一致。

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

import java.util.Scanner;
public class 求商
{
    public static void main(String[] args)
    {
        Scanner Sc=new Scanner(System.in);
        System.out.println("请输入被除数和除数");
        int beichu= Sc.nextInt();
        int chu= Sc.nextInt();
        int shang=0;
        int yushu=0;
        while(beichu>=chu)
        {
            beichu=beichu-chu;
            shang++;
        }
        System.out.println("余数为"+yushu);
        System.out.println("商为"+shang);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我是世界大好人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值