Java基础语法:逻辑控制

本文详细介绍了Java中的逻辑控制语句,包括顺序结构、分支结构(if和switch)和循环结构(while、for和do-while)。同时,讲解了Java中的输入输出方法,如System.out.println()、System.out.printf()以及使用Scanner进行键盘输入。此外,还展示了如何利用Random生成随机数来创建猜数字游戏。最后,文章总结了主要知识点,是初学者掌握Java基础的实用教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面小编就为大家带来一篇Java逻辑控制的基础文章。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

目录

一、逻辑控制语句

1. 顺序结构

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

1

2

3

System.out.println(1)

System.out.println(2)   

System.out.println(3)

该代码结果为 1(换行)2(换行)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 语句也有三种基本的形式

形式一

1

2

3

if(布尔表达式){

    // 条件满足时执行的代码

}

形式二

1

2

3

4

5

if(布尔表达式){

    // 条件满足时执行的代码

}else{

    // 条件不满足时执行的代码

}

形式三

1

2

3

4

5

6

7

if(布尔表达式1){

    // 条件1满足时执行的代码

}else if(布尔表达式2){

    // 条件2满足时执行的代码

}else{

    // 条件都不满足时执行的代码

}

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

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

1

2

3

4

int a = 10;

if(a){

    System.out.println(a);

}

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

1

2

3

4

int a = 10;

if(a > 0){

    System.out.println(a);

}

这种代码就是正确的

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

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

1

2

3

4

5

6

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.基本语法

1

2

3

System.out.println(msg);        // 输出一个字符串,自带换行

System.out.print(msg);          // 输出一个字符串,不带换行

System.out.printf(format,msg);  // 格式化输出,括号内内容类似于 C 语言的 printf

2.代码示例

1

2

3

4

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() 可以读入一个字符,但是需要搭配异常处理。如果不搭配异常,如下面代码就会编译出错

1

2

3

4

5

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 键就会出现

在这里插入图片描述

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

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

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

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

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

1

2

3

4

5

6

7

8

9

10

11

12

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();           //读入一个字符串

    }

}

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

1

String s = in.nextLine();

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

1

in.nextLine();

来读取掉之前的回车。

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

1

2

3

4

5

int a;

while(scanf("%d",&a) != EOF)

{

    // 内容

}

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

1

2

3

4

5

int a;

while(cin>>a)

{

    // 内容

}

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

1

2

3

4

5

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 类中的方法生成我们想要的,如

1

2

3

4

5

6

7

8

9

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)间的随机整数

    }

}

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

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("很遗憾,你猜的数字大了!");

            }

        }

    }

}

四、总结

本篇文章就到这里了,希望能给你带来帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值