Java基础语法:逻辑控制

目录
  • 一、逻辑控制语句
    • 1. 顺序结构
    • 2. 分支结构
      • 2.1 if 语句
    • 2.2 switch 语句
  • 3. 循环结构
    • 3.1 while 循环
    • 3.2 break
    • 3.3 continue
    • 3.4 for 循环
    • 3.5 do while 循环
  • 二、输入输出方式
    • 1. 输出到控制台
      • 1.基本语法
      • 2.代码示例
      • 3.格式化输出表(随用随查)
    • 2. 从键盘输入
      • 1.读入一个字符(不推荐使用)
      • 2.使用 Scanner 读取字符/字符串/整数/浮点数/布尔值
  • 三、猜数字游戏
    • 1.首先我们要知道在 Java 中随机数是怎么生成的。
  • 四、总结

一、逻辑控制语句

1. 顺序结构

像我们写的代码,执行时会按照从上到下一行一行的执行。这就是顺序结构,不同的顺序,结果可能就不一样。如

System.out.println(1)
System.out.println(2)
System.out.println(3)

该代码结果为 1(换行)2(换行)3,但是如果把顺序改变结果就变了

System.out.println(2)
System.out.println(3)
System.out.println(1)

该代码结果就变为 2(换行)3(换行)1

2. 分支结构

2.1 if 语句

和 C 语言一样,在 Java 中 if 语句也有三种基本的形式

形式一

if(布尔表达式){
    // 条件满足时执行的代码
}

形式二

if(布尔表达式){
    // 条件满足时执行的代码
}else{
    // 条件不满足时执行的代码
}

形式三

if(布尔表达式1){
    // 条件1满足时执行的代码
}else if(布尔表达式2){
    // 条件2满足时执行的代码
}else{
    // 条件都不满足时执行的代码
}

但是从形式上我们就可以看出还是有一些不同的

1.条件表达式必须是布尔值,不能像 C 语言一样直接使用一个数值,如

int a = 10;
if(a){
    System.out.println(a);
}

这种代码就是错的,条件必须是布尔值

int a = 10;
if(a > 0){
    System.out.println(a);
}

这种代码就是正确的

2.代码风格问题,比如我写 C 语言时喜欢把一对大括号并列在行首。但是在 java 中更推荐上述三种形式那样的风格,将 { 放在 if 或 else 同一行

3.还要注意悬垂 else 问题,记住 else 是与 最接近的 if 匹配。如

int a = 2;
if(a>0)
	if(a>10)
		System.out.println("a > 10");
else
	System.out.println("a > 0 && a <= 10");

我们要知道,最下面的 else 是与与它最近的 if 匹配的

2.2 switch 语句

Java 中的 switch 语句和 C 语言中的几乎一样,大家如果不太熟悉 switch 以及该章所讲解的一些逻辑结构可以去看看我写的 C语言三大语句注意事项 。但是既然不是完全一样,那哪里有区别呢?

在 Java 中,switch(表达式) 中的表达式是有类型限制的。

它只能使用:整数(只包括 byte、short、int)、字符(char)、字符串(String)、枚举类型

3. 循环结构

3.1 while 循环

舒服,Java 的 while 循环和 C 语言也是极其类似,只有一个小的差异

while (表达式) 中的表达式必须是布尔值

3.2 break

break 的功能是:让最靠近包裹它的整个循环提前结束。这也是和 C 语言是一样的

3.3 continue

continue 的功能是:跳过本次循环,立即进入下次循环。这也是和 C 语言是一样的

3.4 for 循环

Java 中的 for 循环和 C 语言中的也很类似,只有一个差异

for(表达式1;表达式2;表达式3) 中的表达式2是循环的判断条件,要使用布尔值

3.5 do while 循环

Java 中的 do while 循环也是和 C 语言很类似,只有一个差异

while 中的循环条件只能是布尔值

但是一般不推荐使用,因为它至少会执行一次循环,不注意可能会犯错

二、输入输出方式

1. 输出到控制台

1.基本语法

System.out.println(msg);		// 输出一个字符串,自带换行
System.out.print(msg);			// 输出一个字符串,不带换行
System.out.printf(format,msg);	// 格式化输出,括号内内容类似于 C 语言的 printf

2.代码示例

int a = 10;
System.out.println(a);			// 输出 a,自带换行
System.out.print(a);			// 输出 a,不带换行
System.out.printf("%d\n",a);	// 格式化输出,括号内内容类似于 C 语言的 printf

3.格式化输出表(随用随查)

转换符 类型 例子 输出结果
d 十进制整数 ("%d",100) 100
x 十六进制整数 ("%x",100) 64
o 八进制整数 ("%o",100) 144
f 定点浮点数 ("%f",100f) 100.000000
e 指数浮点数 ("%e",100f) 1.000000e+02
g 通用浮点数 ("%g",100f) 100.000
a 十六进制浮点数 ("%a",100) 0x1.9p6
s 字符串 ("%s",100) 100
c 字符 ("%d",‘1') 1
b 布尔值 ("%b",100) true
h 散列码 ("%h",100) 64
% 百分号 ("%.2f%%",2/7f) 0.29%

2. 从键盘输入

1.读入一个字符(不推荐使用)

直接使用 System.in.read() 可以读入一个字符,但是需要搭配异常处理。如果不搭配异常,如下面代码就会编译出错

public static void main(String[] args) {
        System.out.print("Enter a char:");
        char i = (char)System.in.read();
        System.out.println("The char is :" + i);
    }

我们需要将鼠标放到 read 上面,再按住 Alt + Enter 键就会出现

再点击第一个或者第二个就不会报错了。这里其实是处理了异常,但是一个简单的读入字符就要这么复杂所以不推荐使用。

2.使用 Scanner 读取字符/字符串/整数/浮点数/布尔值

1.首先需要导入 util 包 import java.util.Scanner; ,在 IDEA 中,其可以通过输入 Scanner 后直接回车快速导入

2.然后再构造一个 Scanner 对象并与”标准输入流“ System.in 关联: Scanner 对象名 = new Scanner(System.in);

3.再就可以通过 Scanner 类的各种方法实现输入操作了

import java.util.Scanner;

public class TestDemo {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        int a = in.nextInt();			//读入一个整数
        double b = in.nextDouble();		//读入一个浮点数
        boolean c = in.nextBoolean();	//读入一个布尔值
        String s = in.next();			//读入一个字符串
    }
}

但是要注意,上述读入字符串是按空白符当作分隔符的,故只能读入第一个空格之前的字符。如果想要读取该行的所有字符(包含空格),应该使用

String s = in.nextLine();

但是使用这个方法还是有很大的缺陷,如果这行代码上面还有其他读入的语句,可能这行代码就不会实行。因为上一行的回车可能被它读入,直接这行结束。因此,只能将其放在读入代码的第一个或者在它前面加一个

in.nextLine();

来读取掉之前的回车。

3.我们知道在 C 语言中可以写类似于这样的代码输入多组数据

int a;
while(scanf("%d",&a) != EOF)
{
    // 内容
}

在 C++ 中我们也可以写类似于这样的代码输入多组数据

int a;
while(cin>>a)
{
    // 内容
}

那么在 Java 中怎么做呢?代码如下

Scanner in = new Scanner(System.in);
while(in.hasNextInt()){
    int a = in.nextInt();
    // 内容
}

并且在 IDEA 上我们可以手动输入 Ctrl + D 结束,在 Windows 的 cmd 上 我们手动输入 Ctrl + Z 结束,在 Linux 或 Mac 上,输入 Ctrl + D 结束

三、猜数字游戏

学 C 语言的时候我们可能都接触过随机数的生成,或者直接写一个猜随机数的游戏。那么使用 Java 该怎么写呢?

1.首先我们要知道在 Java 中随机数是怎么生成的。

1.首先需要导入 util 包 import java.util.Random; ,在 IDEA 中,其可以通过输入 Random 后直接回车快速导入

2.然后通过 Random 类中的方法生成我们想要的,如

import java.util.Random;

public class TestDemo {
    public static void main(String[] args) {
        Random random = new random();	// 默认随机种子是系统时间
        int rand = random.nextInt(bound:100) + 1;
        // random.nextInt(bound:100) 是生成[0,100)间的随机整数
    }
}

接下来就是很简单了,只要我们输入的数字与随机数字进行一下比较。直到判断正确再退出就可。故最终的代码是

public class TestDemo {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Random random = new Random();
        int rand = random.nextInt(100) + 1;
        while (true){
            System.out.print("请输入你所猜测的数字:");
            int num = scanner.nextInt();
            if(num == rand){
                System.out.println("恭喜你,猜对了!");
                break;
            }else if(num < rand){
                System.out.println("很遗憾,你猜的数字小了!");
            }else{
                System.out.println("很遗憾,你猜的数字大了!");
            }
        }
    }
}

四、总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Java中的逻辑结构详解

    Java中的逻辑结构 逻辑结构 Java中的逻辑结构 顺序结构分支结构循环结构 顺序结构 顺序结构顾名思义,就是按照代码的顺序依次往下执行,这个不必多讲 分支结构 分支结构又可以细分为两个: if-else-这两个单词相信都认识,翻译成中文就是我们平时所说的如果-就-,那么在Java中该怎么用呢: ①:if else: 它的基本语法结构如下: if(判断条件){ 语句1: }else{ 语句2: 当判断条件为真的时候,执行语句1,否则执行语句2 示例: import java.util.*; p

  • 详谈java命令的本质逻辑揭秘

    前言 在日常编码中,有了ide的支持,我们已经很少直接在命令行中直接执行java XXX命令去启动一个项目了.然而我们有没有想过,一个简单的java命令背后究竟做了些什么事情?让我们看下下面几个简单的问题 1.java命令之后可以跟很多参数,那么这些参数是如何被解析的?为何-version会返回版本号而如果紧跟一个类名则会启动jvm? 2.为何我们自己定义的入口方法必须满足如下的签名?是否还有其他可能性? public static void main(String[] args) { } 3.

  • 关于java命令的本质逻辑揭秘过程

    前言 在日常编码中,有了ide的支持,我们已经很少直接在命令行中直接执行java XXX命令去启动一个项目了.然而我们有没有想过,一个简单的java命令背后究竟做了些什么事情?让我们看下下面几个简单的问题 1.java命令之后可以跟很多参数,那么这些参数是如何被解析的?为何-version会返回版本号而如果紧跟一个类名则会启动jvm? 2.为何我们自己定义的入口方法必须满足如下的签名?是否还有其他可能性? public static void main(String[] args) { } 3.

  • Java基础之逻辑运算符知识总结

    一.前言 逻辑运算符 左右都是布尔类型的操作数,表达式的结果也是布尔类型 true或false 二.逻辑运算符 & 逻辑与 只要有一个操作数是false,那么结果一定是false && 短路与 效率高点,只要左边是false,那么右边就不计算,结果一定是false | 逻辑或 只要有一个操作数是true,那么结果一定是true || 短路或 效率高点,只要左边是true,那么右边就不计算,结果一定是true ! 逻辑非 结果相反 ^ 逻辑异或 左右操作数不一样结果是true,左右操

  • Java程序的逻辑控制和方法详解

    一.顺序结构 从上往下执行,非常简单,不做过多赘述. 二.分支结构 1.if语句 与c语言不同的是,java的if(布尔表达式)必须是布尔表达式 eg:判断某一年是否是闰年 public static void main(String[] args) { Scanner scan = new Scanner(System.in); int year = scan.nextInt(); if((year%4==0 && year%100 !=10)||(year%400==0)) Syste

  • Java基础语法:逻辑控制

    目录 一.逻辑控制语句 1. 顺序结构 2. 分支结构 2.1 if 语句 2.2 switch 语句 3. 循环结构 3.1 while 循环 3.2 break 3.3 continue 3.4 for 循环 3.5 do while 循环 二.输入输出方式 1. 输出到控制台 1.基本语法 2.代码示例 3.格式化输出表(随用随查) 2. 从键盘输入 1.读入一个字符(不推荐使用) 2.使用 Scanner 读取字符/字符串/整数/浮点数/布尔值 三.猜数字游戏 1.首先我们要知道在 Ja

  • Java 基础语法中的逻辑控制

    目录 Java 基础语法中的逻辑控制 一.逻辑控制语句 1. 顺序结构 2. 分支结构 3. 循环结构 二.输入输出方式 1. 输出到控制台 2. 从键盘输入 三.猜数字游戏 四.总结 Java 基础语法中的逻辑控制 一.逻辑控制语句 1. 顺序结构 像我们写的代码,执行时会按照从上到下一行一行的执行.这z就是顺序结构,不同的顺序,结果可能就不一样.如 System.out.println(1) System.out.println(2) System.out.println(3) 该代码结果为

  • Java基础语法之二维数组详解

    一.二维数组 进入正题之前.首先为了便于大家理解,我画了一个图: xx枪战游戏中, 我是一个刚刚注册账号的小白,系统送了我两把枪,此时,我的武器库只有这么一层(可以理解为一位数组,枪就是对应的数组中对应的元素) 经过艰苦卓绝的战斗,终于有了一笔钱,现在我打算配置好的游戏装备,我现在有了一个枪柜,它可以存放三层的枪械,每一层都可以放多把武器(这个就是二维数组,有多层,每层都是一个一维数组) 随着游戏时长和我的高超技术,获取游戏装备的效率越来越高了,一个枪柜已经存不下了,于是,我就有了多个枪柜(这个

  • Java 基础语法让你弄懂类和对象

    目录 Java 基础语法 一.类与对象的初步认知 二.类和类的实例化 三.类的成员 1. 字段/属性/成员变量 2. 方法 3. static 关键字 四.封装 1. private 实现封装 2. getter 和 setter 方法 五.构造方法 1. 基本语法 2. this 关键字 六.认识代码块 1. 什么是代码块 2. 本地代码块 3. 实例代码块 4. 静态代码块 七.补充说明 1. toString 方法 2. 匿名对象 八.总结 Java 基础语法 其实在学习 C 语言时就一直

  • Java 基础语法之解析 Java 的包和继承

    目录 一.包 1. 概念 2. 使用方式 3. 静态导入 4. 创建包 5. 包的访问权限 6. 常见的系统包 二.继承 1. 概念 2. 语法规则(含 super 使用) 3. protected 关键字 4. 更复杂的继承关系 5. final 关键字 三.组合 四.总结(含谜底) 一.包 1. 概念 根据定义:包是组织类的一种方式 那么为什么要组织类呢? 简单来讲就是保证类的唯一性,就比如在以后的工作中,如果大家一起开发一个项目,大家可能在自己的代码中都写到了一个 Test 类,而如果出现

  • Java 基础语法 异常处理

    目录 1. 异常的背景 1.1 邂逅异常 1.2 异常和错误 1.3 Java 异常的体系(含体系图) 1.4 异常的核心思想 1.5 异常的好处 2. 异常的基本用法 2.1 捕获异常 2.1.1 基本语法 2.1.2 示例一 2.1.3 示例二(含使用调用栈) 2.1.4 示例三(可以使用多个 catch 捕获不同的异常) 2.1.5 示例四(可以使用一个 catch 捕获所有异常,不推荐) 2.1.6 示例五(使用 finally,它之间的代码将在 try 语句后执行) 2.1.7 示例六

  • Java 基础语法

    目录 1.基本语法 2.标识符(合法的变量名) 3.关键字(保留字) 4.注释 5.Java 包 5.1 package 语句 5.2 import 语句 6.源文件声明规则 前言: Java 是一门面向对象的解释型编程语言. 面向对象 意味着我们应该把一个 Java 程序看作一系列对象的集合,我们的工作就是构建这些对象,并通过调用彼此的方法来让各种对象协同工作,解决实际的问题. 解释型 意味着: Java编译程序生成字节码(byte-code),而不是通常的机器码. 相同的代码设计成可有效地传

  • java基础javeSE程序逻辑控制语法

    目录 顺序结构 分支结构 if 语句 悬垂 else switch 语句 循环结构 while 循环 for 循环 do while 循环 输入输出方式 输出到控制台 从键盘输入 猜数字游戏 顺序结构 按照代码书写的顺序一行一行执行 分支结构 if 语句 基本语法形式: if(布尔表达式){ //条件满足时执行代码 } if(布尔表达式){ //条件满足时执行代码 }else{ //条件不满足时执行代码 } //多分支 if(布尔表达式){ //条件满足时执行代码 }else if(布尔表达式)

  • java 学习笔记(入门篇)_java的基础语法

    前言 学习完了第一个java程序,之后就来系统的学习java.先从基础语法开始,这个语法你也可以理解为英语或是汉语里面的语法,只不过大家各有各的特点和区别.学习编程其实也是一个编程语言的学习过程.我们在学习英语的时候都说,要想学习好英语一定要动口说,那么在学习编程的时候你一定要动手写.编程无非就是一个写代码的过程,首要就是你心中要有基础,没有基础怎么去写呢,就像一篇好文章,没有好文笔是写不出来的.好文笔不仅靠积累,更要靠创造,编程亦是如此.java是一个面向对象的语言,在写代码的过程中,接触最多

随机推荐