JavaSE程序逻辑控制(三种基本结构(顺序、分支、循环)、输入输出、循环输入)

news2024/9/30 13:24:17

目录

一、顺序结构

二、分支结构

1、 if 语句

2、switch 语句 

与C语言不同,不能作为switch参数的类型:float double long boolean

三、循环结构

1.while循环

2.for循环 

 四、输入输出

1.输出 - 将结果显示打印到屏幕上

2.输入

3.输入输出综合例子 

4.循环输入读取数据 scanner.hasNextInt()


一、顺序结构

同C语言一样,按顺序执行代码

System . out . println ( "aaa" );
System . out . println ( "bbb" );
System . out . println ( "ccc" );
// 运行结果
aaa
bbb
ccc

换了顺序之后,结果界不同了 

System . out . println ( "aaa" );
System . out . println ( "ccc" );
System . out . println ( "bbb" );
// 运行结果
aaa
ccc
bbb

二、分支结构

与C语言不同,Java分支结构的条件是boolean类型

1、 if 语句

以下三种

  

   public static void main2(String[] args) {
        //求闰年,判断普通闰年和世纪闰年
        Scanner scanner = new Scanner(System.in);//java中的输入
        int year = scanner.nextInt();//nextInt读入int型数据

        if(year % 100 == 0){
            if(year % 400==0){
                System.out.println("世纪闰年");
            }else {
                System.out.println("不是闰年");
            }
        } else{
            if(year % 4 == 0){
                System.out.println("普通闰年");
            }else{
                System.out.println("不是闰年");
            }

        }
    }

2、switch 语句 

与C语言不同,不能作为switch参数的类型:float double long boolean

以及很重要的一点,break 不要遗漏, 否则会失去 "多分支选择" 的效果

public static void main3(String[] args) {
        /**
         * 不能作为switch参数的类型:float double long boolean
         * switch不能表达复杂的条件
         */
        int a = 1;
        switch (a) {
            case 1:
                System.out.println(1);
                //break;遇到break才会停止,否则会一致执行,知道遇到break
            case 2:
                System.out.println(2);
                break;
            default:
                System.out.println("输入有误!");
                break;
        }
    }

三、循环结构

1.while循环

while以及do-while与C语言里的差不多,这里就简单说了。

public static void main4(String[] args) {
        //打印1-10之间所有的数字
        int i = 0;
        while(i <= 10){
            System.out.println(i);
            i++;
        }

        System.out.println("===================================");

        //计算1-100的和
        int n = 1;
        int sum = 0;
        while (n<=100){
            sum+=n;
            n++;
        }
        System.out.println(sum);
    }

2.for循环 

 特别的是:Java中有fori循环foreach循环(后面数组来介绍)

int sum = 0 ;
for ( int i = 1 ; i <= 100 ; i ++ ) {
sum += i ;
}
System . out . println ( "sum = " + sum );
// 执行结果
5050


输入输出与C语言不太一样,最开始还是要适应一下 

 四、输入输出

1.输出 - 将结果显示打印到屏幕上

打印时可以简写 sout ,回车之后会自动补全
System . out . println ( msg ); // 输出一个字符串 , 带换行
System . out . print ( msg ); // 输出一个字符串 , 不带换行
System . out . printf ( format , msg ); // 格式化输出

2.输入

使用 Scanner 读取字符串 / 整数 / 浮点数
Scanner是一个工具,在使用的时候,需要导入包,在编译器里,这个包会自动加上
import java . util . Scanner ; // 需要导入 util
  Scanner 命名 =  new Scanner ( System . in );
Scanner scanner = new Scanner ( System . in );

使用输入时

int age = scanner.nextInt();

nextInt();是输入整型,还有其他的nextline等等

3.输入输出综合例子 

在混用输入输出时,有可能会出现,读取字符串的时候,把上一个输入的回车给读了,所以要注意小心!

public static void main7(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        System.out.println("请输入你的姓名:");
//        String name = scanner.nextLine();//nextLine可以输入包含空格的字符串,例如ni hao
//        System.out.println(name);//ni hao
//
//        System.out.println("请输入你的年龄:");
//        int age = scanner.nextInt();
//        System.out.println(age);
//
//        System.out.println("请输入你的工资:");
//        float salary = scanner.nextFloat();
//        System.out.println(salary);

        /**
         * 当先输入年龄的时候,输入数字后,回车
         * 接下来的String name = scanner.nextLine();输入名字的地方,把回车当作字符串读进去了
         * 所以实际工作中尽量少使用java中的读取数据(传参),避免出现这样的问题
         */
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的年龄:");
        int age = scanner.nextInt();
        System.out.println(age);

        //解决办法:用这个先把回车读了,后面就能正常运行了,相当于C语言的getchar()
        scanner.nextLine();//读取回车
        System.out.println("请输入你的姓名:");
        String name = scanner.nextLine();//nextLine可以输入包含空格的字符串,例如ni hao
        System.out.println(name);//ni hao

        System.out.println("请输入你的工资:");
        float salary = scanner.nextFloat();
        System.out.println(salary);
    }

4.循环输入读取数据 scanner.hasNextInt()

    public static void main8(String[] args) {
        //使用Scanner循环读取n个数字,求平均值
        Scanner scanner = new Scanner(System.in);

        /**
         * scanner.hasNextInt(),有下一个整型int,读取到数据时,为真,进入while循环。
         * 结束循环读取,按 Ctrl d (windows的cmd终端用ctrl z)
         * 网上刷题时不用管,那边服务器会自动处理的
         */
        while(scanner.hasNextInt()){
            int a = scanner.nextInt();//读取到了的整型,用a存起来
            System.out.println(a);//打印该整型
        }
    }

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java的方法怎么用?递归是什么?一篇文章带你醍醐灌顶

目录 1.方法定义 2.实参 形参 3.方法重载 4.递归 1.方法定义 // 方法定义 修饰符 返回值类型 方法名称([参数类型 形参 ...]){ 方法体代码; [return 返回值]; }public static 返回值 方法名(形式参数列表){} 实现一个函数&#xff0c;检测一个年份是否为闰年 public class M…

从零开始yolov5模型训练【绝对能学会】

与其说是学习目标检测任务&#xff0c;不如暂时说成是如何正确运行一个yolo小项目。 一、anaconda 安装&#xff1a; Anaconda安装以及如何创建新环境 安装好了之后打开Anaconda Prompt&#xff1a; anaconda的base环境下&#xff1a; 针对yolov5创建一个自己的环境&#xff…

Spring指定bean在哪个应用加载

1.背景 某项目,spring架构,有2个不同的WebAppApplication入口,大部分service类共用,小部分类有区别,只需要在一个应用中加载,不需要在另一个应用中加载. 2.实现代码 自定义限制注解 package mis.shared.annotation;import java.lang.annotation.ElementType; import java.lan…

【深度学习_TensorFlow】手写数字识别

写在前面 到这里为止&#xff0c;我们已经学习完张量的常用操作方法&#xff0c;已具备实现大部分神经网络技术的基础储备了。这一章节我们将开启神经网络的学习&#xff0c;然而并不需要像学习前面那样了解大量的张量操作&#xff0c;而是将重点转向理解概念知识&#xff0c;…

SQL92 SQL99 语法 Oracle 、SQL Server 、MySQL 多表连接、Natural 、USING

SQL92 VS SQL 99 语法 92语法 内连接 from table1&#xff0c; table2 where table1.col table2.col 外连接 放在 从表 左连接&#xff1a; from table1&#xff0c; table2 where table1.col table2.col() 右连接&#xff1a; from table1&#xff0c; table2 where table…

全网最全最细的jmeter接口测试教程以及接口测试流程详解

一、Jmeter简介 Jmeter是由Apache公司开发的一个纯Java的开源项目&#xff0c;即可以用于做接口测试也可以用于做性能测试。 Jmeter具备高移植性&#xff0c;可以实现跨平台运行。 Jmeter可以实现分布式负载。 Jmeter采用多线程&#xff0c;允许通过多个线程并发取样或通过…

UE4查看加密PAK里边的资源Android/iOS/PC方法

我们经常会需要把1个模型进行减面然后在移动端使用,有时候会出现移动端模型和PC端模型不一致的问题,这时候就需要将移动端的模型和PC端的模型进行对比,找到问题出现的原因,检查Mesh、Normal、UV0、UV1、MaterialId、碰撞等是否一致。 如何打包Pak文件,见这篇文章:UE4打包…

visio过段时间失效了再次破解

坑&#xff1a;一定要 右键在这个bat上面以管理员身份运行&#xff0c;不要直接运行否则会失败&#xff1b; 还有编码&#xff0c;ANSI编码&#xff01;&#xff01;&#xff01; 如图 参考&#xff1a;

机器学习基础08-模型选择02-分类算法矩阵(基于Pima 数据集)

算法评估矩阵&#xff08;Algorithm Evaluation Metrics&#xff09;用于评估机器学习算法在特定任务上的性能。不同的任务可能会使用不同的评估矩阵&#xff0c;因为每个任务的优劣衡量标准都不同。 分类算法矩阵 分类问题或许是最常见的机器学习问题&#xff0c;并且有多种评…

【Linux】节点之间配置免密登录

文章目录 1、实现2、原理3、SSH的理解 1、实现 先写实现&#xff0c;解决问题后有兴趣的自己看后面的原理。 以实现节点A&#xff08;主&#xff09;免密登录到节点B&#xff08;从&#xff09;为例&#xff1a;&#xff08;注意例子里节点B被登录&#xff09; 步骤一&#xf…

JavaScript 中的隐式类型转换

一、什么情况会发生隐式类型转换&#xff1f; 1、加号&#xff08;&#xff09; 号比较特殊&#xff0c;既可以当做算数运算符做加法&#xff0c;又可以当做字符串连接符 ① 算数运算符 除了 string 类型以外的原始数据类型进行加法运算时&#xff0c;非数字类型会转换为数字…

uniapp对uni.request()的封装以及使用

前言&#xff1a; 在uniapp中向服务端发送请求较为容易&#xff0c;使用 uni.request() 即可。 uni.request({url: https://www.example.com/request, //仅为示例&#xff0c;并非真实接口地址。data: {text: uni.request},header: {custom-header: hello //自定义请求头信息…

weui cells 如何去掉边框

问题&#xff1a;weui cells 如何去掉边框 解决&#xff1a; cells通过before,after实现边框&#xff0c;不显示的话&#xff0c;在引用的页面wxss加上&#xff1a; .weui-cells:before,.weui-cells:after {border: none; }

2023牛客暑期多校训练营6 A-Tree (kruskal重构树))

文章目录 题目大意题解参考代码 题目大意 ( 0 ≤ a i ≤ 1 ) , ( 1 ≤ c o s t i ≤ 1 0 9 ) (0\leq a_i\leq 1),(1 \leq cost_i\leq 10^9) (0≤ai​≤1),(1≤costi​≤109) 题解 提供一种新的算法&#xff0c;kruskal重构树。 该算法重新构树&#xff0c;按边权排序每一条边…

学会这样提问,你就超过了82.7%的老网工

下午好&#xff0c;我的网工朋友 很多朋友会说&#xff0c;我怎么问问题&#xff0c;在群里&#xff0c;或者后台&#xff0c;还有给老杨总发消息&#xff0c;都没收到比较详细的回复&#xff1f;尤其是问技术问题的时候。 除了我们回复消息的时间和精力的确比较有限之外&…

JMeter压力测试记录

最近在学习redis解决高并发下导致数据库数据不准确的问题&#xff0c;使用到了一些工具&#xff0c;包括Jmeter&#xff0c;Redis-desktop-manager.。Jmeter用于模拟高并发情景&#xff0c;Redis-desktop-manager是redis数据库的GUI界面。 一、单元测试生成测试数据 1)插入20…

python可以做哪些小工具,python可以做什么小游戏

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python可以做什么好玩的&#xff0c;python可以做什么小游戏&#xff0c;今天让我们一起来看看吧&#xff01; 最近有几个友友问我说有没有比较好玩的Python小项目来练手&#xff0c;于是我找了几个比较有意思的给他们&…

进程间的六种通信方式以及优缺点总结

参考博客链接&#xff1a;https://blog.csdn.net/qq_34827674/article/details/107678226 前提知识&#xff1a;每个进程都有自己的用户空间&#xff0c;而内核空间是每个进程共享的。因此进程之间想要进行通信&#xff0c;就需要通过内核来实现。 1、管道 管道是最简单&…

Springboot部署ELK实战

Springboot部署ELK实战 1、部署docker、docker-compose环境安装docker安装docker-compose 2、搭建elk1、构建目录&&配置文件1、docker-compose.yml 文档2、Kibana.yml3、log-config.conf 2、添加es分词器插件3、启动 3、Springboot项目引入es、logStash配置1、引入依赖…

ORALCE RAC总结

一:ORACLE RAC集群安装 ASM磁盘管理 二:ORACLE RAC集群报错排查总结 三:ORACLE RAC集群报错排查总结 3.1 ORA-29760: instance_number parameter not specified RAC1节点,RAC2节点 解决 export ORACLE_SID=a81(数据库实例名) 3.2 参考资料 ORACLE RAC集群 安装参…