java(二):java的运算和流程控制

java中单引号和双引号区别和用法

区别1:java中的单引号表示字符,双引号表示字符串。

区别2:单引号引的数据一般是char类型的;双引号引的数据 是String类型的。

区别3:java中单引号里面只能放一个字母或数字或符号;java中的双引号里面是0到多个字符构成。所以字符可以直接转换成字符串。字符串需要使用charAt(n) 来获取第几个字符。

char定义时用单引号,只能有一个字母,数字。char c='c';而String用双引号,可以是一个,也可能是多个字母,汉字等。就是所谓的字符串。String s="adsaf";

char只是一个基本类型,而String 可以是一个类,可以直接引用。比如char c='c';不能直接对c调用方法。String s="abc"; 这时可以调用s.charAt(0);等方法,因为String是类,这是就是对象的调用了。

一.java 基本语法--运算符

java中常用的算术运算符是:+加、-减、*乘、/除、%取模

其实%运算可以得到两个数的余数。

一.算术运算符:++自加、--自减。

这两个运算符比较特殊,请大家思考一下:

int a=90;

a++;          等同于(a=a+1)

这时a等于?91


int b=89;

b--;          等同于(b=b-1)

这时b等于?88


inta=56;

intb=a++; 

System.out.println(b);56

System.out.println(a);57

int b=++a;相当于a=a+1再将b=a;

 int b=a++;相当于b=a再将a=a+1。

算术运算符:+=左加.-=左减./=左除.%=左取模

请大家看看几个案例,就明白了:

inta=90;

a+=90;           (相当于a=a+90)

请问,a现在等于多少?180

float b=89.7f;

b+=a;            (相当于b=b+a)

请问,b现在等于多少?269.7

int a=56;int b=90;

a-=34;b%=a;       (相当于a=a-34,b=b%a)

System.out.println(b);2

System.out.println(a);22

运算符

二.关系运算符

1、==等于;2、>大于;3、<小于;4、>=大于等于;5、<=小于等于;6、!=不等于

案例:

/*请编写一个程序,该程序可以接收两个数

(可以是整数,也可是小数)并判断两个数是大于?小于?还是等于? */

package day2;

import java.io.*;

import java.io.InputStreamReader;

public class shuru {

    public static void main(String []args){

        try{

            //输入流从键盘接收数

            InputStreamReader isr = new InputStreamReader(System.in);

            BufferedReader br = new BufferedReader(isr);

            //给出提示

            System.out.println("请输入第一个数");

            //从控制台读取一行数据

            String a1 = br.readLine();

            System.out.println("请输入第二个数");

            String a2 = br.readLine();

            //把String转float

            float num1 = Float.parseFloat(a1);

            float num2 = Float.parseFloat(a2);

            if(num1>num2){System.out.println("第一个大");}

            if(num1==num2){System.out.println("相等");}

            if(num1<num2){System.out.println("第二个大");}

        }catch(Exception e){

            e.printStackTrace();

        }

    }

}

三.运算符--逻辑运算符

用于判断逻辑关系的运算符

1、&&与;  2、||或;  3、!非

&&与的运算关系,真真为真,其它都为假。

||或的运算关系,假假为假,其它都为真。

!非的运算关系,真取假,假取真

二.java基本语法----三大流程控制

1顺序控制

听其名而知其意,让程序可以顺序的执行。

请大家看个案例[demo11.java]:

int a=7;

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

System.out.println("hello!");

a++;

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

System.out.println("0(∩_∩)0");

a++;

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


2分支控制

让程序有选择的执行,分支控制有三种:

1、 单分支;2、双分支;3、多分支a

1、单分支语法:

    if(条件表达式){

        语句;

    }


2、双分支语法:

    if(条件表达式){

        语句;

    }else{

        语句;

    }


3.1、多分支语法:

    if(条件表达式){

        语句;

    }else if(条件表达式){

        语句;

    }else if(条件表达式){

        语句;

    }else{

        语句;

    }

3.2、多分支语法:

    switch(条件表达式){ //***条件表达式数据类型,就和case常量表达式一致,否则就会报错。

    case常量1:

        语句1;

                 //语句1至break中相当于{}可以加入相应程序代码

        break;  //break,表示跳出switch语句

    case常量2:

        语句1;

        break;

        ...

    case常量n:

        语句n;

        break;

    default:

        语句;

        break;

    }

*****:switch中的可用数据类型主要是:允许byte,short,int,char,enum等


eg:编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18,要对自己的行业负责,送入监狱”。如果该同志的年龄大于10岁并且小于等于18,则输出“你的年龄也不小了,把你送少管所”。其它情况,则输出“小孩子,下次注意”。

package day3;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class demo2 {

    public static void main(String[] args) {

        try{

        InputStreamReader isr =new InputStreamReader(System.in);

        BufferedReader br = new BufferedReader(isr);

        System.out.println("输入年龄");

        String a1 = br.readLine();

        float num1 = Float.parseFloat(a1);

        if(num1>18){

            System.out.println("你年龄大于18,要对自己的行业负责,送入监狱");

        }

        else if(num1>10 && num1<=18){

            System.out.println("你的年龄也不小了,把你送少管所");

        }else{

            System.out.println("小孩子,下次注意");

        }

        }catch(Exception e){

            e.printStackTrace();

        }

    }

}


对比switch与if语句在执行分支语句的区别。

***switch分支语句不支持判断类型即boolean类型,switch只支持byte,short,int,char,enum等数据类型

练习:

1、双分支控制作业.

编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18岁,要对自己的行为负责!”否则,输出“你的年龄不大这次放过你了”

package day3;

import java.io.*;

import java.io.BufferedReader;

public class demo01 {

    public static void main(String []args){

        try{

            //接收从键盘输入的数

            InputStreamReader isr = new InputStreamReader(System.in);

            BufferedReader br = new BufferedReader(isr);

            //提示

            System.out.println("请输入年龄");

            //从控制台读取一行数据

            String a1 = br.readLine();

            //将string转float

            float num1 = Float.parseFloat(a1);

            if(num1<18){

                System.out.println("你的年龄是"+num1);

            }else{

                System.out.println("你年龄大于18,要为自己的行为负责!");

            }

        }catch(Exception e){

            e.printStackTrace();

        }

    }

}

2.多分支控制:

编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18,要对自己的行业负责,送入监狱”。如果该同志的年龄大于10岁并且小于等于18,则输出“你的年龄也不小了,把你送少管所”。其它情况,则输出“小孩子,下次注意”。

package day3;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class demo2 {

    public static void main(String[] args) {

        try{

        InputStreamReader isr =new InputStreamReader(System.in);

        BufferedReader br = new BufferedReader(isr);

        System.out.println("输入年龄");

        String a1 = br.readLine();

        float num1 = Float.parseFloat(a1);

        if(num1>18){

            System.out.println("你年龄大于18,要对自己的行业负责,送入监狱");

        }

        else if(num1>10 && num1<=18){

            System.out.println("你的年龄也不小了,把你送少管所");

        }else{

            System.out.println("小孩子,下次注意");

        }

        }catch(Exception e){

            e.printStackTrace();

        }

    }

}

3.多分支控制:

请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g

a表示星期一,b表示星期二...根据用户的输入显示相应的信息,要求使用switch语句完成。

package day3;

import java.io.*;

import java.util.Scanner;

public class demo3 {

    public static void main(String[] args){

        try{

            //根据用户输入判断今天星期几

            //请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g

            //a表示星期一,b表示星期二 …

            //根据用户的输入显示相应的信息.要求使用 switch 语句完成

        /*思路分析

            1. 接收一个字符 , 创建Scanner对象

            2. 使用switch 来完成匹配,并输出对应信息

        代码*/

            Scanner myScanner = new Scanner(System.in);

            System.out.println("请输入一个字符(a-g)");

            char c1 = myScanner.next().charAt(0);

            switch(c1){

                case 'a':

                    System.out.println("周一");

                    break;

                case 'b':

                    System.out.println("周二");

                    break;

                case 'c':

                    System.out.println("周三");

                    break;

                case 'd':

                    System.out.println("周四");

                    break;

                case 'e':

                    System.out.println("周五");

                    break;

                case 'f':

                    System.out.println("周六");

                    break;

                case 'g':

                    System.out.println("周日");

                    break;

                default:

                    System.out.println("请输入a-g");

            }

        }catch(Exception e){

            e.printStackTrace();

        }

    }

}


3循环控制

听其名而知其意,就是让你的代码可以循环的执行。

循环控制有三种

1、for循环语法:

    for(循环初值;循环条件;步长){

        语句; //循环体

    }

2、while循环语法:

    while(循环条件){

        语句; //循环体

    }

特别说明:while循环是先判断在执行语句。


3、do

while循环 语法:

    do{

        语句; //循环体

    }while(循环条件);

特别说明:do while循环是先执行,再判断。


eg:写一个三角形

package day3;

//请编写一个程序,可以接收一个整数,表示层数,打印出金字塔一半

public class demo4 {

    public static void main(String []args){

        int lay =4;

        //lay表示层数

        for(int i=1;i<=lay;i++){

            //print

            for(int j=1;j<=i;j++){

                System.out.print("*");

            }

            System.out.println("\n");

        }

    }

}

注意System.out.print()和System.out.println()的区别


eg:金字塔

package day3;

public class demo5 {

    public static void main(String []args){

        int lay = 4;

        for(int i=1;i<=lay;i++){

            //规律  

            //1=>3 2=>2 3=>1 4=>0 空格的规律

            for(int k=1;k<=lay-i;k++){

                System.out.print(" ");

            }

            //print *

            //1=>1 2=>3 3=>5  4=>7*的规律

            for(int j=1;j<=(i-1)*2+1;j++){

                System.out.print("*");

            }

            System.out.println();

        }

    }

}


eg:镂空金字塔

public class demo6{

    public static void main(String []args){

        int lay=10;//表示有多少层

        for(int i=1;i<=lay;i++){

            //找出规律

            //1->32->2 3->1 4->0找出空格

            for(int k=1;k<=lay-i;k++){

            System.out.print("");

            }

            //打印*

            //1->12->3 3->5 4->7找出星的规律

            for(int j=1;j<=(i-1)*2+1;j++){

                //判断该层是否是顶层或者是底层

                if(i==1||i==lay){

                System.out.print("*");

                }else{

                    //如果是第一个*

                    if(j==1 || j==(i-1)*2+1){

                    System.out.print("*");

                    }else{

                        System.out.print("");

                    }

                }

            }

            System.out.println();//换行

        }

    }

}


eg:空心菱形

public class Demo7{

    public static void main(String []args){

        int lay=4;//菱形上半部行数

        for(int i=1;i<=lay-1;i++){//判断循环上半部分

            for(int k=1;k<=lay-i;k++){//找行内*号前输出空格

                System.out.print("");

            }

            for(int j=1;j<=(i-1)*2+1;j++){//找行内输出星的位置

                if(j==1||j==(i-1)*2+1){  //判断行最小长度和最大长度,并在最小长度和最大长度上输出*号,行内输入出空格。

                    System.out.print("*");

                }else{

                    System.out.print("");

                 }

            }

            System.out.println();//换行

        }

        for(int i=1;i<=lay;i++){ //判断循环菱形下半部分

            for(int k=1;k<=i-1;k++){//判断循环找*号前要输出空格处

                System.out.print(" ");

            }

            for(int j=1;j<=(lay-i)*2+1;j++){//判断循环行长度

                if(j==1||j==(lay-i)*2+1){//判断行最小长度和最大长度,并在最小长度和最大长度上输出*号,行内输入出空格。

                    System.out.print("*");

                }else{

                    System.out.print("");

                 }

            }

            System.out.println();//输出换行

        }

    }

}


eg:实心菱形

public class Demo104{

    publicstatic void main(String []args){

        intlay=4;//菱形上半部行数

        for(inti=1;i<=lay-1;i++){ //判断循环上半部分

            for(intk=1;k<=lay-i;k++){//找行内*号前输出空格

                System.out.print("");

            }

            for(intj=1;j<=(i-1)*2+1;j++){//找行内输出星的位置

                System.out.print("*");

            }

            System.out.println();//换行

        }

        for(inti=1;i<=lay;i++){  //判断循环菱形下半部分

            for(intk=1;k<=i-1;k++){//判断循环找*号前要输出空格处

                System.out.print("");

            }

            for(intj=1;j<=(lay-i)*2+1;j++){//判断循环行长度

                System.out.print("*");

            }

            System.out.println();//输出换行

        }

    }

}




喜欢的朋友记得点赞、收藏、关注哦!!!

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

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

相关文章

Android envsetup与Python venv使用指南

Android envsetup 和 Python venv 是两种完全不同的环境配置工具&#xff0c;分别服务于不同的开发场景。以下是对它们的详细解释及使用方法&#xff1a; 1. Android envsetup 用途&#xff1a; Android envsetup 是 Android 源码开发中的环境配置脚本&#xff08;envsetup.sh…

游戏引擎学习第222天

回顾昨天的过场动画工作 我们正在制作一个游戏&#xff0c;目标是通过直播的方式完成整个游戏的开发。在昨天的工作中&#xff0c;我享受了制作过场动画的过程&#xff0c;所以今天我决定继续制作多个层次的过场动画。 昨天我们已经开始了多层次过场动画的基本制作&#xff0…

Leedcode刷题 | Day31_贪心算法05

一、学习任务 56. 合并区间代码随想录738. 单调递增的数字968. 监控二叉树 二、具体题目 1.56合并区间56. 合并区间 - 力扣&#xff08;LeetCode&#xff09; 给出一个区间的集合&#xff0c;请合并所有重叠的区间。 示例 1: 输入: intervals [[1,3],[2,6],[8,10],[15,1…

app逆向专题五:新快报app数据采集

app逆向专题五:新快报app数据采集 一、抓包寻找数据接口二、编写代码三、完整代码一、抓包寻找数据接口 打开charles,并在手机端打开新快报app,点击“广州”或者“经济”等选项卡,抓包,寻找数据接口,如图所示: 二、编写代码 这里介绍一种简便的代码编写方法,在数据…

Java面试黄金宝典45

1. 非对称加密 RSA 定义:RSA 是一种广泛使用的非对称加密算法,其安全性基于大整数分解的困难性。它使用一对密钥,即公钥和私钥。公钥可公开用于加密消息,而私钥必须保密,用于解密由相应公钥加密的消息。要点: 公钥公开,私钥保密,二者成对出现。加密和解密使用不同的密钥…

提权实战!

就是提升权限&#xff0c;当我们拿到一个shell权限较低&#xff0c;当满足MySQL提权的要求时&#xff0c;就可以进行这个提权。 MySQL数据库提权&#xff08;Privilege Escalation&#xff09;是指攻击者通过技术手段&#xff0c;从低权限的数据库用户提升到更高权限&#xff…

在虚拟机上修改saprk的版本

之前安装的spark版本是3.4&#xff0c;现在实验需要的版本是2.4。现在需要更改spark的版本。 方法很简单&#xff1a; 直接将原有的spark3.4的文件删除&#xff0c;再安装2.4版本。 安装过程之后再写。Spark2.1.0入门&#xff1a;Spark的安装和使用_厦大数据库实验室博客

文献分享: DESSERT基于LSH的多向量检索(Part3.2.外部聚合的联合界)

原论文 文章目录 1. \textbf{1. } 1. 定理 4.2 \textbf{4.2} 4.2的内容 1.1. \textbf{1.1. } 1.1. 一些符号 1.2. \textbf{1.2. } 1.2. 定理内容 3. \textbf{3. } 3. 联合界限 Ps. \textbf{Ps. } Ps. 运行时间分析 1. \textbf{1. } 1. 定理 4.2 \textbf{4.2} 4.2的内容 1.1. \t…

MIPI协议介绍

MIPI协议介绍 mipi 协议分为 CSI 和DSI,两者的区别在于 CSI用于接收sensor数据流 DSI用于连接显示屏 csi分类 csi 分为 csi2 和 csi3 csi2根据物理层分为 c-phy 和 d-phy, csi-3采用的是m-phy 一般采用csi2 c-phy 和 d-phy的区别 d-phy的时钟线和数据线是分开的,2根线一对…

【中间件】nginx反向代理实操

一、说明 nginx用于做反向代理&#xff0c;其目标是将浏览器中的请求进行转发&#xff0c;应用场景如下&#xff1a; 说明&#xff1a; 1、用户在浏览器中发送请求 2、nginx监听到浏览器中的请求时&#xff0c;将该请求转发到网关 3、网关再将请求转发至对应服务 二、具体操作…

在3ds Max中视口显示为黑色或深灰色

在3ds Max中视口显示为黑色或深灰色 Autodesk Support 2023年10月8日 涵盖的产品和版本 问题&#xff1a; 在3ds Max中&#xff0c;使用“深”UI方案时视口显示为完全黑色&#xff0c;使用“浅”UI方案时视口显示为深灰色。 原因&#xff1a; 已为用户界面禁用Gamma校正。…

Vue.js 中 v-if 的使用及其原理

在 Vue.js 的开发过程中&#xff0c;条件渲染是一项极为常见的需求。v-if指令作为 Vue.js 实现条件渲染的关键手段&#xff0c;能够根据表达式的真假来决定是否渲染某一块 DOM 元素。它在优化页面展示逻辑、提升用户体验等方面发挥着重要作用。接下来&#xff0c;我们就深入探讨…

Verilog:LED呼吸灯

模块接口说明 信号方向描述clk输入系统时钟&#xff08;100MHz&#xff0c;周期10ns&#xff09;rst_n输入低电平有效的异步复位信号led_en输入总使能信号&#xff08;1开启呼吸灯&#xff0c;0关闭&#xff09;speed_en输入呼吸速度调节使能信号speed[2:0]输入呼吸速度分级&a…

我的计算机网络(总览篇)

总览--网络协议的角度 在一个庞大的网络中&#xff0c;该从哪里去了解呢&#xff1f;我先细细的讲一下我们访问一个网站的全部流程&#xff0c;当我们的电脑连上网络的时候&#xff0c;就会启动DHCP协议&#xff0c;来进行IP地址&#xff0c;MAC地址&#xff0c;DNS地址的分配…

开源的PMPI库实现及示例代码

开源的PMPI库实现及示例代码 PMPI (Profiling MPI) 是MPI标准中定义的接口&#xff0c;允许开发者通过拦截MPI调用进行性能测量和调试。以下是几个常用的开源PMPI库实现&#xff1a; 1. MPICH的PMPI接口 MPICH本身提供了PMPI接口&#xff0c;可以直接使用。 2. OpenMPI的PM…

Unity 基于navMesh的怪物追踪惯性系统

今天做项目适合 策划想要实现一个在现有的怪物追踪系统上实现怪物拥有惯性功能 以下是解决方案分享&#xff1a; 怪物基类代码&#xff1a; ​ using UnityEngine; using UnityEngine.AI;[RequireComponent(typeof(NavMeshAgent))] [RequireComponent(typeof(AudioSource))] …

PyTorch进阶学习笔记[长期更新]

第一章 PyTorch简介和安装 PyTorch是一个很强大的深度学习库&#xff0c;在学术中使用占比很大。 我这里是Mac系统的安装&#xff0c;相比起教程中的win/linux安装感觉还是简单不少&#xff08;之前就已经安好啦&#xff09;&#xff0c;有需要指导的小伙伴可以评论。 第二章…

【区块链安全 | 第三十八篇】合约审计之获取私有数据(二)

文章目录 前言漏洞代码代码审计攻击步骤修复/开发建议审计思路前言 在【区块链安全 | 第三十七篇】合约审计之获取私有数据(一)中,介绍了私有数据、访问私有数据实例、Solidity 中的数据存储方式等知识,本文通过分析具体合约代码进行案例分析。 漏洞代码 // SPDX-Licens…

《微服务与事件驱动架构》读书分享

《微服务与事件驱动架构》读书分享 Building Event-Driver Microservices 英文原版由 OReilly Media, Inc. 出版&#xff0c;2020 作者&#xff1a;[加] 亚当 • 贝勒马尔 译者&#xff1a;温正东 作者简介&#xff1a; 这本书由亚当贝勒马尔&#xff08;Adam Bellemare…

小刚说C语言刷题——第22讲 二维数组

昨天我们讲了一维数组&#xff0c;今天我们来讲二维数组。 1.定义 二维数组是指在数组名后跟两个方括号的数组。 2.语法格式 数据类型 数组名[下标][下标] 例如&#xff1a;int a[5][9];//表示5行9列的数组 3.访问二维数组元素 格式&#xff1a;数组名[行坐标][列坐标]…