Java基础语法结构

2023-11-06

顺序结构

  • java的基本结构就是顺序结构,除非特别指明,否则就是按从上到下执行,顺序结构是最简单的算法结构。
  • 顺序结构的程序语句只能被执行一次。如果您想要同样的操作执行多次,就需要使用循环结构。
  • 顺序结构是任何一个算法都离不开的一种基本算法结构

if单选择结构

一个if语句包含一个布尔表达式和一条或多条语句。
if 语句的语法如下:

if(布尔表达式){
      //如果布尔表达式为true将执行的语句
}

if语句后面可以跟else语句,当if语句的布尔表达式值为false时,else语句块会被执行。
if…else的用法如下:

if(布尔表达式){
	//如果布尔表达式的值为true
}else{
	//如果布尔表达式的值为false
}

if…else if…else语句
if 语句后面可以跟else if…else 语句,这种语句可以检测到多种可能的情况。
if…else if…else语法格式如下:

if(布尔表达式 1){
	//如果布尔表达式1的值为true执行代码
}else if(布尔表达式2){
	//如果布尔表达式2的值为true执行代码
}else if(布尔表达式3){
	//如果布尔表达式3的值为true执行代码
}else {
	//如果以上布尔表达式都不为true执行代码
}

根据输入的月份,判断所在的季节

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        //1.创建一个month变量 用来存储一个月份值(Scanner)
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个月份,我来帮您判断所属的季节");
        int month = input.nextInt();//帮我们读取输入的数字   input.nextLine();读取字符串
        //2.通过month存储的值 进行季节的判断
        if (month < 1 || month > 12) {
            System.out.println("您输入的数字不符合月份,数据错误");
        } else if (month >= 3 && month <= 5) {
            System.out.println("春天");
        } else if (month >= 9 && month <= 11) {
            System.out.println("秋天");
        } else if (month >= 6 && month <= 8) {
            System.out.println("夏天");
        } else {
            System.out.println("冬天");
        }
    }
}

运行结果:

实现投骰子的随机游戏

import java.util.Scanner;

public class Test{
	public static void main(String[] args){
		double value = Math.random();//有范围[0.0-1.0)  0.0->0.99999999
		int number = (int)(value*6+1);
		//2.让玩家猜测大小     大 小
		Scanner input = new Scanner(System.in);
		System.out.println("猜点数是大还是小");
		String choose = input.nextLine();//帮我们读取输入的文字
		//3.比较点数与猜测结果
		System.out.println("本次摇出的点数为:"+number);
		//   (点数1 2 3 同时 小) 或者 (点数4 5 6 同时 大)
		//   "a"=="b"   "a".equals("b");
		if((number<=3 && choose.equals("小")) || (number>3 && choose.equals("大"))){
			System.out.println("恭喜您 猜对啦");
		}else{
			System.out.println("很遗憾 猜错了");
		}
	}
}

运行结果:

Switch Case语句

switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
switch case语句语法格式如下:

switch(expression){
	case value : //语句break;
	case value : //语句break;
	//可以有任意数量的case语句
	default : //语句
}

switch case语句有如下规则:

  1. switch 语句中的变量类型可以是:byte、short、int或者char。从Java SE7开始,switch支持字符串String类型了,同时case标签必须为字符串常量或字面量。
  2. switch语句可以拥有多个case语句。每个case后面跟一个要比较的值和冒号。
  3. case语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
  4. 当变量的值与case语句的值相等时,那么case语句之后的语句开始执行,直到break语句出现才会跳出switch语句。
  5. 当遇到break语句时,switch语句终止。程序跳转到switch语句后面的语句执行。case语句不必须要包含break语句。如果没有break语句出现,程序会继续执行下一条case语句,直到出现break语句。
  6. switch语句可以包含一个default分支,该分支一般是switch语句的最后一个分支(可以在任何位置,但建议在最后一个)。default在没有case语句的值和变量值相等的时候执行。default分支不需要break语句。

实现一个判断学生成绩对应的区间

import java.util.Scanner;

public class Test{
	public static void main(String[] args){
		//1.创建一个变量 score 用来存储学生成绩
		Scanner input = new Scanner(System.in);
		System.out.println("请输入一个学生成绩,我来帮您判断区间");
		int score = input.nextInt();
		//2.利用成绩的值 来进行判断所在区间
		switch(score/10){
		case 0:
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
			System.out.println("不及格");
			break;
		case 6:
			System.out.println("及格");
			break;
		case 7:
			System.out.println("中等");
			break;
		case 8:
			System.out.println("良好");
			break;
		case 9:
			System.out.println("优秀");
			break;
		case 10:
			if(score==100){
				System.out.println("满分");
				break;
			}
		default:
			System.out.println("Error!");
			break;
		}
	}
}

运行结果:

从键盘上输入数字星期,然后输出它的英文,输入数字在1-7之间

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请您输入一个数字,我来输出对应的英文星期");
        int day = input.nextInt();//可以读取我们输入的文字   input.nextLine();读取字符串
        switch (day) {
            case 1:
                System.out.println("Monday");
                break;
            case 2:
                System.out.println("Tuesday");
                break;
            case 3:
                System.out.println("Wednesday");
                break;
            case 4:
                System.out.println("Thursday");
                break;
            case 5:
                System.out.println("Friday");
                break;
            case 6:
                System.out.println("Saturday");
                break;
            case 7:
                System.out.println("Sunday");
                break;
            default:
                System.out.println("Error!");
                break;
        }  
    }
}                

运行结果:

for循环

  • 虽然所有循环结构都可以用while或者do…while表示,但Java提供了另一种语句——for循环,使一些循环结构变得更加简单。
  • for循环执行的次数是在执行前就确定的。语法格式如下:
for(初始化;布尔表达式;更新){
	//代码语句
for(int i=O; i<100; i++){
	//代码语句
}
  1. 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
  2. 然后,检测布尔表达式的值。如果为true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
  3. 执行一次循环后,更新循环控制变量。
  4. 再次检测布尔表达式。循环执行上面的过程。

求素数(素数指的是只能被1和它自己本身整除的数字)

public class Test {
    public static void main(String[] args) {
        for (int num = 2; num <= 100; num++) {
            //先把1和本身这两个数字  刨除掉
            //在剩下的数字中挨个找寻一遍  看一看还有没有其他的整除数字
            boolean x = false;
            for (int i = 2; i <= num / 2; i++) {//在其余的数字中挨个找寻 还有没有能整除的
                if (num % i == 0) {
                    System.out.println(num + "不是素数");
                    x = true;
                    break;
                }
            }
            if (x == false) {
                System.out.println(num + "是素数");
            }
        }
    }
}

运行结果:

求水仙花数(水仙花数是三位数,它的各位数字的立方和等于这个三位数本身)

public class Test {
    public static void main(String[] args) {
        for (int num = 100; num < 1000; num++) {
            if (Math.pow(num / 100, 3) + Math.pow(num % 100 / 10, 3) + Math.pow(num % 10, 3) == num) {
                System.out.println(num + "是水仙花数");
            }
        }
    }
}

运行结果:

While循环结构

while是最基本的循环,它的结构为:

while(布尔表达式){
	//循环内容
}

只要布尔表达式为true,循环就会一直执行下去。
我们大多数情况是会让循环停止下来,我们需要一个让表达式失效的方式来结束循环。
如果循环条件一直为true就会造成无线循环(死循环)。

画一个三角形状的堆叠*号

public class Test {
    public static void main(String[] args) {
        int i = 1;
        while (i <= 4) {
            //画空格占位
            int j = 1;
            while (j <= 4 - i) {
                System.out.print(" ");
                j++;
            }
            //画星星
            int k = 1;
            while (k <= 2 * i - 1) {
                System.out.print("*");
                k++;
            }
            //换行
            System.out.println();
            i++;
        }
    }
}

运行结果:

do…while循环

对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。do…while 循环和while循环相似,不同的是,do…while循环至少会执行一次。

do {
	//代码语句
}while(布尔表达式);

注意:布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。如果布尔表达式的值为true,则语句块―直执行,到布尔表达式的值为false。

求水仙花数(水仙花数是三位数,它的各位数字的立方和等于这个三位数本身)

public class Test {
    public static void main(String[] args) {
        int num = 100;
        int a, b, c;
        do {
            if (Math.pow(num / 100, 3) + Math.pow(num % 100 / 10, 3) + Math.pow(num % 10, 3) == num) {
                System.out.println("水仙花数:" + num);
            }
            num++;
        }
        while (num <= 999);
    }
}

break和continue的区别

break主要用在循环语句或者switch语句中,用来跳出整个语句块。
break跳出最里层的循环,并且继续执行该循环下面的语句。

  • 使用break关键字,输出1 2
public class Test {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            if (i == 3) {
                break;
            }
            System.out.println(i);
        }
    }
}

continue适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。
在for循环中, continue语句使程序立即跳转到更新语句。
在while或者do…while循环中,程序立即跳转到布尔表达式的判断语句。

  • 使用continue关键字,输出1 2 4 5
public class Test {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            if (i == 3) {
                continue;
            }
            System.out.println(i);
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java基础语法结构 的相关文章

  • 在java中轮询Http服务器(重复发送http get请求)

    当对其进行 REST 调用时 我的 Web 服务器会发送一些信息 我想不断轮询该服务器 间隔5秒后重复发送HTTP GET请求 以检查返回的信息是否有任何变化 做到这一点最有效的方法是什么 您能提供一些代码示例吗 请注意 我只想开发客户端代
  • 如何在由子控件组成的 SWT 复合材料上跟踪鼠标?

    我创建了自己的控件 我想跟踪鼠标并添加一个MouseTrackListener 很遗憾MouseEnter and MouseLeave当鼠标移动到我的合成部分 即标签和按钮 上时 也会生成事件 Mouse enter mouse ente
  • TreeMap 删除所有大于某个键的键

    在项目中 我需要删除键值大于某个键的所有对象 键类型为Date 如果重要的话 据我所知TreeMapJava中实现的是红黑树 它是一种二叉搜索树 所以我应该得到O n 删除子树时 但除了制作尾部视图并一一删除之外 我找不到任何方法可以做到这
  • 如何调试“com.android.okhttp”

    在android kitkat中 URLConnection的实现已经被OkHttp取代 如何调试呢 OkHttp 位于此目录中 external okhttp android main java com squareup okhttp 当
  • Runtime.exec 处理包含多个空格的参数

    我怎样才能进行以下运行 public class ExecTest public static void main String args try Notice the multiple spaces in the argument Str
  • 如何检查某个元素是否存在于一组项目中?

    In an ifJava中的语句如何检查一个对象是否存在于一组项目中 例如 在这种情况下 我需要验证水果是苹果 橙子还是香蕉 if fruitname in APPLE ORANGES GRAPES Do something 这是一件非常微
  • Java 中如何将 char 转换为 int? [复制]

    这个问题在这里已经有答案了 我是Java编程新手 我有例如 char x 9 我需要得到撇号中的数字 即数字 9 本身 我尝试执行以下操作 char x 9 int y int x 但没有成功 那么我应该怎么做才能得到撇号中的数字呢 ASC
  • 如何仅从 Firestore 获取最新更新的数据?

    在 Firestore 上发现任何更改时始终获取整个文档 如何只获取最近更新的数据 这是我的数据 我需要在第一次加载时在聊天中按对象顺序 例如 2018 09 17 30 40 msg和sendby 并且如果数据更新则仅获取新的msg和se
  • 将人类日期(当地时间 GMT)转​​换为日期

    我正在服务器上工作 服务器正在向我发送 GMT 本地日期的日期 例如Fri Jun 22 09 29 29 NPT 2018在字符串格式上 我将其转换为日期 如下所示 SimpleDateFormat simpleDateFormat ne
  • 提高 PostgreSQL 1 亿数据左连接查询性能

    我在用Postgresql 9 2 version Windows 7 64 bit RAM 6GB 这是一个Java企业项目 我必须在我的页面中显示订单相关信息 有三个表通过左连接连接在一起 Tables TV HD 389772 行 T
  • 在Java中运行bat文件并等待

    您可能会认为从 Java 启动 bat 文件是一项简单的任务 但事实并非如此 我有一个 bat 文件 它对从文本文件读取的值循环执行一些 sql 命令 它或多或少是这样的 FOR F x in CD listOfThings txt do
  • Jetty、websocket、java.lang.RuntimeException:无法加载平台配置器

    我尝试在 Endpoint 中获取 http 会话 我遵循了这个建议https stackoverflow com a 17994303 https stackoverflow com a 17994303 这就是我这样做的原因 publi
  • 不可变的最终变量应该始终是静态的吗? [复制]

    这个问题在这里已经有答案了 在java中 如果一个变量是不可变的并且是final的 那么它应该是一个静态类变量吗 我问这个问题是因为每次类的实例使用它时创建一个新对象似乎很浪费 因为无论如何它总是相同的 Example 每次调用方法时都会创
  • 使用 HtmlUnit 定位弹出窗口

    我正在构建一个登录网站并抓取一些数据的程序 登录表单是一个弹出窗口 所以我需要访问这个www betexplorer com网站 在页面的右上角有一个登录链接 写着 登录 我单击该链接 然后出现登录弹出表单 我能够找到顶部的登录链接 但找不
  • 将 JScrollPane 添加到 JFrame

    我有一个关于向 Java 框架添加组件的问题 我有一个带有两个按钮的 JPanel 和一个添加了 JTable 的 JScrollPane 我想将这两个添加到 JFrame 中 我可以将 JPanel 添加到 JFrame 或将 JScro
  • 手动设置Android Studio的JDK路径

    如何为 Android Studio 使用自定义 JDK 路径 我不想弄乱 PATH 因为我没有管理员权限 是否有某个配置设置文件允许我进行设置 如果您查看项目设置 您可以从那里访问 jdk 在标准 Windows 键盘映射上 您可以在项目
  • Hibernate 本机查询 - char(3) 列

    我在 Oracle 中有一个表 其中列 SC CUR CODE 是 CHAR 3 当我做 Query q2 em createNativeQuery select sc cur code sc amount from sector cost
  • Java 正则表达式中的逻辑 AND

    是否可以在 Java Regex 中实现逻辑 AND 如果答案是肯定的 那么如何实现呢 正则表达式中的逻辑 AND 由一系列堆叠的先行断言组成 例如 foo bar glarch 将匹配包含所有三个 foo bar 和 glarch 的任何
  • Log4j2 ThreadContext 映射不适用于parallelStream()

    我有以下示例代码 public class Test static System setProperty isThreadContextMapInheritable true private static final Logger LOGG
  • Java 11 - 将 Spring @PostConstruct 替换为 afterPropertiesSet 或使用 initMethod

    我正在使用 spring 应用程序 有时会使用 PostConstruct用于代码和测试中的设置 看来注释将被排除在外Java 11 https www baeldung com spring postconstruct predestro

随机推荐

  • Springcloud nacos install配置文件没有在target的classes里生成

    这是最近接手的一个springcloud的项目 在install编译的时候 target里面没有对应的nacos的配置文件 导致项目启动不起来 刚开始我也和大家一个都会搜索idea maven编译的时候install后target里面没有生
  • 数据结构——平衡树【2-3查找树、红黑树】

    查找树 查找树的定义 一棵标准的二叉查找树中的结点称为2 结点 含有一个键和两条链 而现在我们引入 3 结点 含有两个键和三条链 2 结点 含有一个键 及其对应的值 和两条链 左链接指向 2 3 树中的键都小于该结点 右链接指向的 2 3
  • ES 模糊查询 实现像Mysql like %%那样的模糊查询

    BoolQueryBuilder boolQueryBuilder QueryBuilders boolQuery WildcardQueryBuilder wildcardQueryBuilder QueryBuilders wildca
  • Javaweb基础-Servlet前后端交互

    eclipse创建好html文件和servlet之后得到如下页面 前端html 1 首先在html中引入Jquery 把下面的代码插入到head标签下 2 之后编写我们的前端html内容 在body标签内编写一下内容 用户名
  • http九大内置对象和四大作用域

    九大对象 application ServletContext 服务器启动后就产生了这个对象 所有客户共享这个内置的application 重中之中 request HttpServletRequest ServletResponse 封装
  • 寻找重复数

    lettCode 287 寻找重复数 给定一个包含 n 1 个整数的数组 nums 其数字都在 1 到 n 之间 包括 1 和 n 可知至少存在一个重复的整数 假设只有一个重复的整数 找出这个重复的数 示例 1 输入 1 3 4 2 2 输
  • Stata对cgss2017数据实证分析,希望有经验能帮忙的小伙伴多多指导。

    Stata是一款统计软件 用于数据分析和统计建模 如果您需要对cgss2017数据进行实证分析 可以使用Stata中的各种工具 如回归分析 t检验和统计图表等 在分析之前 需要先导入cgss2017数据到Stata中 然后就可以使用不同的命
  • addr2line输出问号怎么办

    前言 使用backtrace等工具将程序异常运行的堆栈打印出来 然后再结合使用addr2line将堆栈地址转为文件行 将对于定位故障非常有帮助 但有时使用addr2line却输出为 0 从addr2line的man手册中看确实没有分C和C
  • JDK8-lambda常用汇总

    来源 juejin im post 5ce66801e51d455d850d3a4a 一 引言 java8 最大的特性就是引入 Lambda 表达式 即函数式编程 可以将行为进行传递 总结就是 使用不可变值与函数 函数对不可变值进行处理 映
  • idea代码检测工具sonar和alibaba插件

    下面介绍两种代码检测插件的安装和使用 SonarLint和aibaba 使用起来主要有以下区别 Alibaba代码规范插件主要检测代码规范 SonarLint主要检测代码是否正确 存在的问题 安全漏洞等 安装方法 file settings
  • 【笔试题】素数天购买设备

    题目描述 题解 自己尝试解了一下 不知道对不对 import java util public class Main public static Map
  • Modulo Summation——UPC

    题目描述 You are given N positive integers a1 a2 aN For a non negative integer m let f m m mod a1 m mod a2 m mod aN Here X m
  • 使用QT环境Mingw64编译Boost库(GCC)

    1 首先得拿到QT creator Boost 下载链接 qt opensource windows x86 5 13 0 exe http download qt io archive qt 5 13 5 13 0 qt opensour
  • 【Zotero】学习笔记|只需简单几步为Zotero设置深色模式!

    具体可参考GitHub中教程 作者作为一个简单的汉化介绍 Rosmaninho Zotero Dark Theme Step1 转到用户配置文件文件夹 Windows users C Users User name AppData Roam
  • C++多态的方式:重写和重载

    引用 windows程序员面试指南 重写和重载 C 多态的实现方式包括重载和重写 重写 重写是动态的多态 通过C 的虚函数实现 重载 重载是静态的多态 在同一个作用域内 具有相同函数名 不同的形参个数或者形参类型实现重载 和返回值类型无关
  • Unity 初识Mesh绘制面(一)

    Unity中渲染出的3D物体组成内容 首先我们先在Unity3D中创建一个Cube 在Inspector可以看到其中含有MeshFilter MeshRenderer组件 由此可见如果你想要展示一个3D游戏物体 它必须拥有两个组件 Mesh
  • 51单片机控制的自动感应调光、坐姿矫正智能台灯

    目录 一 元件清单 二 实现效果 三 主要内容 四 代码 五 总结 一 元件清单 AT89C51单片机 ADC0809 5V有源蜂鸣器 USB电源线DC电源插头 万用板 红外接近传感器 红外遥控器 红外接收头 人体感应模块HC SR501
  • 陷波滤波器设计及应用

    最近有个对陷波滤波器应用的需求 具体见 单相PWM整流反馈电压陷波滤波的好处 博文记录 在同事现成的推导过程中做相关整理 方便以后使用 陷波滤波器的传递函数有多种形式 同事采用了如下的G s 其中是陷波频率 是陷波系数 陷波滤波器有三个指标
  • keil中添加STC单片机

    目前的keil4数据库里面没有STC的数据库 每次都要替换 现在教大家一种方法 我试过的最有效的方法 在不改变原有库的情况下添加STC的数据库 1 把下载的文件解压 复制到keil安装文件下的UV4里 例如E Keil UV4 2 更改ke
  • Java基础语法结构

    顺序结构 java的基本结构就是顺序结构 除非特别指明 否则就是按从上到下执行 顺序结构是最简单的算法结构 顺序结构的程序语句只能被执行一次 如果您想要同样的操作执行多次 就需要使用循环结构 顺序结构是任何一个算法都离不开的一种基本算法结构