四 . 分支和循环——Java基础篇

四 . 分支和循环

1 . switch的基本语法

if 和 swicth 的对比:

  1. if既可以用于范围校验, 也可以用于等值校验
  2. swicth对于if效率更高,只能用于等值校验

语法格式:

switch(表达式){
    case 常量值1:
        语句块1;
        //break;
    case 常量值2:
        语句块2;
        //break; 
    // ...
   [default:
        语句块n+1;
        break;
   ]
}
注意:
    1. Switch用于等值校验
    2. break结束分支
    3.default可有可无, 所有的case都不满足时,就会执行
       

public class SwitchTest {
    public static void main(String[] args) {
        //1,创建键盘输入对象
        Scanner in=new Scanner(System.in);
        //2,获取整数
        System.out.println("请您输入一个整数");
        int num = in.nextInt();
        //3,对整数进行判断
        switch(num){
            case 1:
                System.out.println("11");
                break;
            case 2:
                System.out.println("22");
                break;
            case 3:
                System.out.println("33");
                break;
            default:
                System.out.println("输入有误!");
                break;
        }
        //4,输出
        //5,关闭资源
        in.close();
    }
}

2 . switch支持的数据类

在这里插入图片描述

switch表达式的数据类型----------------byte short int char String 枚举,,,不支持long
class SwitchTest2{
    public static void main(String[] args) {
        //键盘输入一个季节,展示当前季节的特点
        //1,创建键盘输入对象
        Scanner in=new Scanner(System.in);
        //2,获取
        System.out.println("请您输入一个季节:");
        //类型是String的话,后面用next()
        String arr = in.next();
        //3,判断
        switch(arr){
            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;
        }
        //4,输出
        //5,关闭资源
        in.close();
    }
  }

-------键盘输入年份和月份 输出制定月份的天数

/*
switch练习
1.键盘输入年份和月份  输出制定月份的天数

 */
public class SwitchExer {
    public static void main(String[] args) {
        //1.创建键盘输入
        Scanner in=new Scanner(System.in);
        //2,获取
        System.out.println("请您输入年份");
        int year=in.nextInt();
        System.out.println("请您输入月份");
        int month=in.nextInt();
        //3,定义变量 接受天数的值
        int days=0;

        //4,月份进行校验,特别处理2月
        switch(month){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                days=31;
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                days=30;
                break;
            case 2:

                //闰年的条件
//                if(year%400==0||year%4==0&&year%100!=0){
//                    days=29;
//                }else{
//                    days=28;
//                }
                //普通的if双循环可用三目条件来判断
                days=year%400==0||year%4==0&&year%100!=0?29:28;
                break;
            default:
                System.out.println("月份输入 有误");

        }
        //5,展示
        System.out.println(year+"年"+month+"月"+days+"天");
        //6,关闭
        in.close();
    }
}

在这里插入图片描述

3.循环语句

循环语句就是解决重复性问题

  • 循环的作用:循环语句具有在某些条件满足的情况下,反复执行特定代码的功能。

  • 循环结构分类:

    • for 循环
    • while 循环
    • do-while 循环
  • 循环结构四要素

    • 初始化条件
    • 循环条件
    • 循环体
    • 迭代条件

4.for循环

基本语法

for (①初始化条件; ②循环条件; ④迭代条件){
         	③循环体;

**执行过程:**①-②-③-④-②-③-④-②-③-④-…-②

①初始化条件: 循环的起始值

②循环条件: 判断循环是否执行的条件

③循环体: 循环做的事

④迭代条件: 更改起始值

i++和++i一样,习惯问题
在这里插入图片描述

注意 :如果需要变量记录数据, 思考变量的位置
      循环外: 记录总变化(循环结束后才能拿到最终结果)
      循环内:

在这里插入图片描述

1. 如果需要变量记录数据, 思考变量的位置
            循环外: 记录总变化(循环结束后才能拿到最终结果)
            循环内:
2. for中声明的变量, 外部无法使用(可以把初始化条件调到外面)
3. 特殊的写法
             缺少循环条件  无限循环
             缺少迭代条件  无限循环
             只有循环体    无限循环
             无限循环下  不能存在其他内容  无法访问

5.偶数. 奇数

判断偶数: i%2==0

判断奇数: i%2!==0
在这里插入图片描述

在这里插入图片描述

6 .while循环

语法格式:

①初始化部分
while(②循环条件部分){
    ③循环体部分;
    ④迭代部分;
}

**执行过程:**①-②-③-④-②-③-④-②-③-④-…-②
在这里插入图片描述

练习----展示1-200内能被3整除的所有数, 每行输出5个

class While4{
    public static void main(String[] args) {
    //展示1-200内能被3整除的所有数, 每行输出5个
        //定义变量能被3整数的数量
        int count=0;
        //1.所有的数
        for (int i = 1; i <=200 ; i++) {
            //2.筛选被3整除的数
            if(i%3==0){
                System.out.println(i+"\t");
                count++;
                if(count%5==0){
                    System.out.println();
                }
            }
        }
    }
}

练习----找产生幸运数字 [1,1000] 666

 */
class While5{
    public static void main(String[] args) {
        //幸运数字公式
        int yy=(int)(Math.random()*(1000-1+1)+1);
         //1.`确定幸运数字
        //2,键盘输入
        Scanner in=new Scanner(System.in);
        //这个num在范围外的目的是为了接受所输入的数字
        //只要这个num与幸运数字不一样,就会不断地寻找
        int num=-1;
        while(num!=yy){
            System.out.println("输入数字");
            num=in.nextInt();
            //输入的数字与幸运数字比较
            if(num>yy){
                System.out.println("大了");
            } else if (num < yy) {
                System.out.println("笑了");
            }else{
                System.out.println("找到了,幸运数字是:"+num+",yy"+yy);
            }
        }
//        System.out.println("输入一个数字");
//        int num = in.nextInt();
//        if(num>yy){
//            System.out.println("大了");
//        } else if (num<yy) {
//            System.out.println("笑了");
//        }else{
//            System.out.println("找到了");
//        }
    }
}

7. do-while循环

语法格式:

①初始化部分;
do{
	③循环体部分
	④迭代部分
}while(②循环条件部分); 

**执行过程:**①-③-④-②-③-④-②-③-④-…-②

public class d0while {
    public static void main(String[] args) {
        //创建初始化
        int i=1;
        do{
            System.out.println("i="+i);
            i++;
        }while (i<=5);
    }
}
for:循环次数固定
while: 循环次数不固定
do while:即使初始化 条件不满足循环条件也会执行一次循环体

return: 结束方法, 跳出程序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/411742.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

H12-821_77

77.如图所示的交换网络&#xff0c;所有交换机都运行了STP协议&#xff0c;当拓扑稳定后&#xff0c;在以下哪台交换机上修改配置BPDU的发送周期&#xff0c;可以影响STD配置BPDU的发送周期&#xff1f; A.STC B.SWD C.SWA D.SWB 答案&#xff1a;C 注释&#xff1a; 在根桥上…

Mysql 高可用解决方案

1.环境说明 操作系统&#xff1a;centos7.7 主服务器&#xff1a;node2(192.168.1.102) 从服务器&#xff1a;node3(192.168.1.103) keepalived中虚拟ip(VIP):192.168.1.100 2.准备事项 主库和从库数据库的版本一致把主库的数据同步给从库一份 3.主库配置 3.1 编辑MySQL配…

机器学习:朴素贝叶斯算法(Python)

一、朴素贝叶斯算法的实现 naive_bayes_classifier.py import numpy as np import collections as cc # 集合的计数功能 from scipy.stats import norm # 极大似然估计样本的均值和标准方差 from data_bin_wrapper import DataBinsWrapperclass NaiveBayesClassifier:"…

绝对路径拼接漏洞 [NISACTF 2022]babyupload

打开题目 最开始以为是文件上传的漏洞 结果发现无论我们上传什么文件都会显示bad filename 去网上看了大佬的wp知道 我们直接去看源代码得到提示 /source 那我们去访问一下这个路径看看 得到一个下载文件 用记事本打开得到 源代码如下 from flask import Flask, request, r…

猫头虎分享已解决Bug || ValueError: Unknown label type: ‘continuous‘

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

Linux:线程控制

目录 线程的相关知识 线程创建 pthread_create 线程关于进程内部资源问题 线程等待 pthread_join 线程退出 pthread_cancel 线程id的理解 pthread_self 线程分离 pthread_detach 线程的相关知识 首先线程是在进程内部执行的&#xff0c;是OS调度的基本单位 线程的…

JAVA学习笔记12

1.键盘输入语句 1.1 介绍 ​ *在编程中&#xff0c;需要接收用户输入的数据&#xff0c;就可以使用键盘输入语句来获取。 1.2 步骤 ​ 1.导入该类的所在包&#xff0c;java.util.* ​ 2.创建该类对象&#xff08;声明变量&#xff09; ​ 3.调用里面的功能 import java.…

算法打卡day2|数组篇|Leetcode 977.有序数组的平方、 209.长度最小的子数组、59.螺旋矩阵II

算法题 Leetcode 977.有序数组的平方 题目链接: 977.有序数组的平方 大佬视频讲解&#xff1a;977.有序数组的平方 个人思路 第一时间就只想到暴力解法&#xff0c;双重循环一个循环比较一个循环赋值&#xff1b;但这样可能会超时&#xff0c;所以还能用双指针&#xff0…

halcon中的2D测量-椭圆

一、定义 二维测量指的是测量二维几何图形的参数&#xff0c;例如圆、椭圆、圆弧、矩形的相关参数。这里的参数对圆来说可以是半径&#xff1b;椭圆可以是长半轴、短半轴&#xff1b;矩形则包括宽和高。 二、基本步骤 1.创建测量模型 使用算子 create_metrology_model 2.设…

积分商城管理系统的设计与实现

积分商城管理系统的设计与实现 获取源码——》公主号&#xff1a;计算机专业毕设大全

设计模式(二)单例模式的七种写法

相关文章设计模式系列 面试的时候&#xff0c;问到许多年轻的Android开发他所会的设计模式是什么&#xff0c;基本上都会提到单例模式&#xff0c;但是对单例模式也是一知半解&#xff0c;在Android开发中我们经常会运用单例模式&#xff0c;所以我们还是要更了解单例模式才对…

【任何电机可使用的七段式s曲线-----包括matlab代码和simulink仿真】

永磁同步电机七段式s曲线 一、前言二、理论分析三、7段式s曲线加减速关系图四、matlab代码代码结果 五、simulink七段式s曲线整体框图simulink结果s-function内嵌代码 六、使用双闭环FOC控制-----simulink仿真示意 一、前言 S形&#xff1a;加加速(T1)→>匀加速(T2)→减加速…

【JVM】StringTable 字符串常量池

参考&#xff1a;javaGuide 字符串常量池 是 JVM 为了提升性能和减少内存消耗针对字符串&#xff08;String 类&#xff09;专门开辟的一块区域&#xff0c;主要目的是为了避免字符串的重复创建 String的不可变性 1.通过字面量的方式&#xff08;区别于new&#xff09;给一个…

Avalonia学习(二十六)-桌面系统界面Ribbon

这个界面是开源项目中拔下来的&#xff0c;我没有全部改完&#xff0c;只能按照我得界面测试。我还有一个bug没有找到&#xff0c;但是解决了一下。这里没有任何和大家说的&#xff0c;给大家看一下界面效果。 另外地图研究了缩放和显示鼠标位置经纬度

https://htmlunit.sourceforge.io/

https://htmlunit.sourceforge.io/ 爬虫 HtmlUnit – Welcome to HtmlUnit HtmlUnit 3.11.0 API https://mvnrepository.com/artifact/net.sourceforge.htmlunit/htmlunit/2.70.0 https://s01.oss.sonatype.org/service/local/repositories/releases/content/org/htmlunit…

Java核心知识点常考面试题(持续更新中)

Java核心知识点常考面试题&#xff08;持续更新中&#xff09; 线程与线程池线程线程池 Java锁机制java线程模型java锁分类轻量级锁重量级锁ReentrantLock 底层原理与源码深度解析ReentrantReadWriteLock 深入理解读写锁CountDownLatchsemaphore 实现公平锁与非公平锁线程死锁与…

Android 9.0 禁用插入耳机时弹出的保护听力对话框

1.前言 在9.0的系统rom定制化开发中,在某些产品中会对耳机音量调节过高限制,在调高到最大音量的70%的时候,会弹出音量过高弹出警告,所以产品 开发的需要要求去掉这个音量弹窗警告功能,接下来就来具体实现这个功能 2.禁用插入耳机时弹出的保护听力对话框的核心类 framework…

第六十八天 APP攻防-XposedFridaHook证书校验反代理代理转发

第68天 APP攻防-Xposed&Frida&Hook&证书校验&反代理&代理转发 知识点&#xff1a; 1、APP防代理绕过-应用&转发 2、APP证书校验类型-单向&双向 3、APP证书校验绕过-Frida&XP框架等 章节点&#xff1a; 1、信息收集-应用&资产提取&权…

蓝桥杯-标题统计

知识点: 关键是考察getline的作用 #include <iostream> using namespace std; int main() { string a; int t0; getline(cin,a);//每次读取一整行并把Enter键生成的换行符抛弃 for(int i0;i<a.length();i){ if(a[i]! )t; } cout<<t; return …

【LTSPICE】宏模型中的语法分析(持续更新)

本篇文章用来总结模型文件、仿真文件中的语法&#xff0c;写给自己看的&#xff0c;格式和内容上比较随意 上图是在安森美官网上下载的一款二极管的spice模型文件。 * 字符串&#xff1a;注释&#xff0c;能看到这篇文章的应该都懂啥叫注释.model&#xff1a;.一个词是命令…