java开发入门学习五-流程控制

流程控制语句

if, if...else,  if..else if..else 

与前端相同 略

switch case

与前端不同的是case不能使用表达式,使用表达式会报错

class TestSwitch {
    public static void main(String[] args) {
       // switch 表达式只能是特定的数据类型: byte short char int 枚举(JDK5.0新增) String(JDK8.0新增)
       // case 后跟的场景,使用表达式与这些常量做相等的判断,不行
       // break 与前端相同,break不写会执行所有语句

       int number = 10;
       switch(number) {
            case 10: 
                System.out.println("10");
                break;
            default: 
                System.out.println("default");
                break;
       }

       char c1 = '你';
       switch(c1) {
            case '你': 
                System.out.println("你");
                break;
            case '我': 
                System.out.println("我");
                break;
            default: 
                System.out.println("default");
                break;
       }

       switch(number) {
            case number > 10:  // 错误
                System.out.println("大于10");
                break;
            default: 
                System.out.println("default");
                break;
       }

    }
}

if和switch的对比 

if: 条件是一个布尔类型的值,if表达式可以用于范围判断,也可以用于等值判断,范围更广

switch语句条件是一个常量,使用范围更狭窄,但switch更具有穿透性

for,while, do while

与前端的语法都是一致的,break跳出当个for循环;continue跳出当次循环

class TestFor {
    public static void main(String[] args) {
        int sum = 0, count = 0;
        for(int i = 1; i <= 100; i++) {
            if(i % 2 == 0) {
                sum += i;
                count += 1;
            }
        }

        System.out.println("输入出"+ count + "输出" + sum);
    }
}

相关测试案例

键盘输入功能case

// 引入包
import java.util.Scanner;
public class TestCase {
    public static void main(String[] args)  {
       Scanner scanner = new Scanner(System.in);

       System.out.println("请输入姓名:");
       String name = scanner.next();

        System.out.println("请输入性别:男\\女");
        // 获取字符串第一个字段
        String gender = scanner.next();

        System.out.println("请输入年龄");
        // 获取字符串第一个字段
        int age = scanner.nextInt();

        System.out.println("请输入体重:");
        double weight = scanner.nextDouble();

        System.out.println("请输入是否单身:单身true;不单身 false");
        boolean isSingle = scanner.nextBoolean();

        // == 用于比较两个变量是否引用同一个对象(内存存储地址)
        if(gender == "男") {
            System.out.println("男");
        }
        // 比较字符串值是否相等
        if(gender.equals("男")) {
            System.out.println("男1");
        }

             
    }
}

随机数

class RandomNum {
    public static void main(String[] args) {
        // 会返回[0.0,1.0)范围的double类型的随机数
        double d1 = Math.random();

        // 获取[0, 100]范围的随机整数
        int i1 = (int)(Math.random() * 101); // [0, 100)

        // 获取一个[1,100]范围的随机整数
        int i2 = ((int)(Math.random() * 100)) + 1; // [0, 100)

        // 获取一个[a,b] 范围的随机整数
        // (int)(Math.random() * (b-a+1)) + a

    }
}

输出*


class TestFor1 {
    public static void main(String[] args) {
       int maxStar = 5;
       for(int i = 1; i <= 3; i++) {
            String str = "";
            // *的个数
            int num = (i * 2) - 1;
            // 空格数
            int space = (maxStar - num) / 2;

            for(int j = 1; j <= maxStar; j++)  {
                if(j <= space || j > space + num) {
                     str += "-";
                }
                if(j > space && j <= space + num) {
                    str += "*";
                }
            }
            System.out.println(str);
       }
    }
}

输出99乘法表

class Testfor2 {
     public static void main(String[] args) {
      for(int i = 1; i <= 9; i++) {
        String expression = "";
        for(int j = 1; j <= i; j++) {
             expression +=  i + "*" + j + "=" + (i * j) + "\t";

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

找出100内所有质数

class Testfor3 {
     public static void main(String[] args) {
        int count = 0;
        for(int i = 2; i <= 100; i++) {
            boolean isNum = false;
            for(int j = 2; j < i; j++) {
                if(i%j == 0) {
                    isNum = true;
                    break;
                }
            }

            if(!isNum) {
                count += 1;
                System.out.println(i);
            }
        }
       
        System.out.println("总数:" + count);
    }
}

优化算法 

class Testfor4 {
     public static void main(String[] args) {
        int count = 0;
        for(int i = 2; i <= 100; i++) {
            boolean isNum = false;
             // 小于i的平方根内计算,优化算法
            for (int i = 2; i <= Math.sqrt(i); i++) {
                if (i % j == 0) {
                    isNum = true;
                }
            }

            if(!isNum) {
                count += 1;
                System.out.println(i);
            }
        }
       
        System.out.println("总数:" + count);
    }
}

记账本

通过键盘输入输出,写一个简单的记账本

public class AccountSoft {
    public static void main(String[] args) {
       boolean isFlag = true;

       int initMoney = 1000;

       String info = "";

       while(isFlag) {
            System.out.println("----记账软件----");
            System.out.println("1 收支明细");
            System.out.println("2 登记收入");
            System.out.println("3 登记支出");
            System.out.println("4 退出");
            System.out.println("请选择(1-4):");

            char select = Utility.readMenuSelection();

            switch(select) {
                case '1':
                    System.out.println("----收支明细---");
                    System.out.println("余额\t收支\t收支说明");
                    System.out.println(info);
                    break;
                case '2':
                   System.out.println("----登记收入----");
					int money1 = Utility.readNumber();
					
					if(money1 > 0){
						initMoney += money1;
					}

					System.out.println("请输入说明");
					String addDesc = Utility.readString();

					info += initMoney + "\t" + money1 + "\t" + addDesc + "\n";
                    break;
                case '3':
                    System.out.println("----登记支出----");
					int money2 = Utility.readNumber();
					
					if(money2 > 0 && initMoney >= money2){
						initMoney -= money2;
					}

					System.out.println("请输入说明");
					String minusDesc = Utility.readString();

					info +=  initMoney + "\t" + money2 + "\t" + minusDesc + "\n";

                    break;
                default: 
                    System.out.println("请确认是否退出(Y/N)");
                    char isExit = Utility.readConfirmSelection();
                    if(isExit == 'Y') {
                        isFlag = false;
                    }
                    break;
            }
       }
       
       
    }
}

Utility 

import java.util.Scanner;

public class Utility {
    public static Scanner scanner = new Scanner(System.in);

    // char为返回格式
    public static char readMenuSelection() {
        char c;
        for(;;) {
            String str = readKeyBoard(1);
            c = str.charAt(0);
            if(c != '1' && c != '2' && c!='3' && c != '4') {
                System.out.print("选择错误请重新输入:");
            }else {
                break;
            }
        }
        return c;
    }

    public static int readNumber() {
        int n;
        for (; ; ) {
            String str = readKeyBoard(4);
            try {
                n = Integer.parseInt(str);
                break;
            } catch (NumberFormatException e) {
                System.out.print("请输入数值");
            }
        }
        return n;
    }

    public static char readConfirmSelection() {
        char c;
        for (; ; ) {
            String str = readKeyBoard(1).toUpperCase();
            c = str.charAt(0);
            if (c == 'Y' || c == 'N') {
                break;
            } else {
                System.out.print("请输入正确选项");
            }
        }
        return c;
    }

    public static String readString() {
        String str = readKeyBoard(8);
        return str;
    }

    public static String readKeyBoard(int limit) {
        String line = "";
        while(scanner.hasNext()) {
            line = scanner.nextLine();
            if(line.length() < 1 || line.length () > limit) {
                System.out.print("输出超过限制");
                continue;
            }
            break;
        }
        return line;
    }

}

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

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

相关文章

.NET 技术 | 调用系统API创建Windows服务

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

《PCI密码卡技术规范》题目

单选1 在《PCI密码卡技术规范》中&#xff0c;下列哪项不属于PCI密码卡的功能&#xff08;&#xff09;。 A.密码运算功能 B.密钥管理功能 C.物理随机数产生功能 D.随主计算机可信检测功能 正确答案&#xff1a;D. <font style"color:#DF2A3F;">解析&…

Java操作Redis-Jedis

介绍 前面我们讲解了Redis的常用命令&#xff0c;这些命令是我们操作Redis的基础&#xff0c;那么我们在 java程序中应该如何操作Redis呢&#xff1f;这就需要使用Redis的Java客户端&#xff0c;就如同我们使 用JDBC操作MySQL数据库一样。 Redis 的 Java 客户端很多&#xff0…

QT网络(二):TCP通信

传输层概念 传输控制协议&#xff08;transmission control protocol&#xff0c;TCP&#xff09;是一种被大多数 Internet 网络协议用于数据传输的底层网络协议&#xff0c;它是可靠的、面向流和连接的传输协议&#xff0c;特别适合用于连续数据传输。 应用层在网络模型中的…

Cherno C++学习笔记 P43 对象生存周期

这篇文章我们讲一下对象的生存周期。这个也是一个很重要的问题&#xff0c;因为我们总说&#xff0c;编程其实就是在操纵内存&#xff0c;而知道了变量如何在栈上生存&#xff0c;以及我们如何利用这些特性来让我们的编程更加简单&#xff0c;我们才是真的理解了编程。我们都知…

02、10个富士胶片模拟的设置

二色彩 1、色彩的加减控制全局的饱和度增减&#xff1b; 2、色彩效果只提升暖色系饱和度&#xff1b; 3、FX蓝色大幅度提升蓝色系饱和度&#xff1b; 4、三个参数都不改变颜色的色相。 2.1 色彩 色彩调整的是拍摄画面整体的色彩饱和程度 2.2色彩效果 调整的是画面中暖色…

【Unity3D】ILRuntime学习记录一

Unity 2019.4.0f1 导入ILRuntime 2.1.0版本 项目目录/Packages/manifest.json添加如下代码&#xff1a; {"scopedRegistries":[{"name":"ILRuntime","url":"https://registry.npmjs.org","scopes":["com.ou…

ECharts柱状图-柱图38,附视频讲解与代码下载

引言&#xff1a; 在数据可视化的世界里&#xff0c;ECharts凭借其丰富的图表类型和强大的配置能力&#xff0c;成为了众多开发者的首选。今天&#xff0c;我将带大家一起实现一个柱状图图表&#xff0c;通过该图表我们可以直观地展示和分析数据。此外&#xff0c;我还将提供…

2024年12月19日Github流行趋势

项目名称&#xff1a;ByteByteGoHq / system-design-101 项目维护者&#xff1a;slam, LombardiDaniel, Stephanvs, alastairp, lucasberti 等项目介绍&#xff1a;使用视觉和简单术语解释复杂的系统。帮助你准备系统设计面试。项目star数&#xff1a;66,527项目fork数&#xf…

Elasticsearch:什么是信息检索?

信息检索定义 信息检索 (IR) 是一种有助于从大量非结构化或半结构化数据中有效、高效地检索相关信息的过程。信息&#xff08;IR&#xff09;检索系统有助于搜索、定位和呈现与用户的搜索查询或信息需求相匹配的信息。 作为信息访问的主要形式&#xff0c;信息检索是每天使用…

机械鹦鹉与真正的智能:大语言模型推理能力的迷思

编者按&#xff1a; 大语言模型真的具备推理能力吗&#xff1f;我们是否误解了"智能"的本质&#xff0c;将模式匹配误认为是真正的推理&#xff1f; 本文深入探讨了大语言模型&#xff08;LLMs&#xff09;是否真正具备推理能力这一前沿科学问题&#xff0c;作者的核…

day-21 内核链表以及栈

1.昨日作业 1.删除指定节点 找到删除就完事了&#xff0c;双向可以停在删除处。 /***************************** 功能&#xff1a;删除指定结点&#xff08;通过姓名&#xff09;* 参数&#xff1a;phead&#xff1b;oldname; * 返回&#xff1a;成功0&#xff0c;失-1&…

深入剖析MyBatis的架构原理

架构设计 简要画出 MyBatis 的架构图 >> ​​ Mybatis 的功能架构分为哪三层&#xff1f; API 接口层 提供给外部使用的接口 API&#xff0c;开发人员通过这些本地 API 来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。MyBatis 和数据库的…

Figma插件:提高设计工作效率

Figma作为一款当前流行的设计工具&#xff0c;其受欢迎程度的飙升与2020年疫情后的远程工作趋势密切相关。许多设计团队开始转向线上办公模式&#xff0c;这时&#xff0c;Figma的协作功能就显得尤为重要&#xff0c;促使众多设计师从Sketch等传统设计软件转向Figma。 Figma是…

Hive其一,简介、体系结构和内嵌模式、本地模式的安装

目录 一、Hive简介 二、体系结构 三、安装 1、内嵌模式 2、测试内嵌模式 3、本地模式--最常使用的模式 一、Hive简介 Hive 是一个框架&#xff0c;可以通过编写sql的方式&#xff0c;自动的编译为MR任务的一个工具。 在这个世界上&#xff0c;会写SQL的人远远大于会写ja…

Qt之自定义标题栏拓展(十)

Qt开发 系列文章 - user-defined-titlebars&#xff08;十&#xff09; 目录 前言 一、方式一 1.效果演示 2.创建标题栏类 3.可视化UI设计 4.定义相关函数 5.使用标题栏类 二、方式二 1.效果演示 2.创建标题栏类 3.定义相关函数 1.初始化函数 2.功能函数 3.窗口关…

鱼跃医疗获评2024年国家级“绿色工厂”,以绿色制造树立行业标杆

近日&#xff0c;工业和信息化部公布了2024年度绿色制造名单&#xff0c;鱼跃医疗凭借在绿色制造和可持续发展方面的卓越表现&#xff0c;成功入选并获评国家级“绿色工厂”。 “绿色工厂”是工信部为贯彻落实国家《工业绿色发展规划》&#xff0c;加快推动绿色制造体系建设&a…

【数据集】玻璃门窗缺陷检测数据集3085张5类YIOLO+VOC格式

数据集格式&#xff1a;VOC格式YOLO格式 压缩包内含&#xff1a;3个文件夹&#xff0c;分别存储图片、xml、txt文件 JPEGImages文件夹中jpg图片总计&#xff1a;3085 Annotations文件夹中xml文件总计&#xff1a;3085 labels文件夹中txt文件总计&#xff1a;3085 标签种类数&am…

一、LRU缓存

LRU缓存 1.LRU缓存介绍2.LRU缓存实现3.LRU缓存总结3.1 LRU 缓存的应用3.2 LRU 缓存的优缺点 1.LRU缓存介绍 LRU是Least Recently Used 的缩写&#xff0c;意为“最近最少使用”。它是一种常见的缓存淘汰策略&#xff0c;用于在缓存容量有限时&#xff0c;决定哪些数据需要被删…

【视频生成模型】——Hunyuan-video 论文及代码讲解和实操

&#x1f52e;混元文生视频官网 | &#x1f31f;Github代码仓库 | &#x1f3ac; Demo 体验 | &#x1f4dd;技术报告 | &#x1f60d;Hugging Face 文章目录 论文详解基础介绍数据预处理 &#xff08;Data Pre-processing&#xff09;数据过滤 (Data Filtering)数据标注 (Data…