首页 > 编程语言 > 第二章《Java程序世界初探》第7节:关系运算符及条件语句

第二章《Java程序世界初探》第7节:关系运算符及条件语句

时间:2022-12-29 12:32:54浏览次数:60  
标签:语句 Java max System else 运算符 圆形 初探 输入

​关系运算符有==、!=、>、>=、<、<=。它们分别表示等于、不等于、大于、大于等于、小于和小于等于。关系运算符的作用是判断两个数据之间是否存在某种逻辑关系。既然是“判断”,说明关系运算符所描述的逻辑关系并不一定真的成立,需要经过计算才能最终确定。虚拟机经过计算之后,如果认定两个数据之间确实存在关系运算符所描述的逻辑关系,则设置运算结果为true,否则设置运算计算结果为false。

例如:​

int a=1;​
int b=2;​

程序员就可以用“>”来判断 “a>b”是否成立。经过判断之后,虚拟机发现 “a>b”并不成立,于是就把计算结果设定为false。​

由关系运算符和操作数所组成的表达式称为“关系表达式”,例如“a>b”就是一个关系表达式。关系表达式也被称为“条件”。如果一个关系表达式的计算结果为true,则说明条件成立,否则说明条件不成立。​

实际开发过程中,程序员可以让计算机在某个条件成立的情况下才去执行语句。为计算机设定执行语句条件的格式为:​

if(条件)

语句;

以上格式包含三部分:​

  1. if关键字以及它后面的小括号。​
  2. 小括号中的条件。​
  3. 条件成立时要执行的语句。​

这种格式被称为“条件语句”。条件语句在编程中有着广泛的应用,比如在2.4小节所述的计算圆形面积的例子中,程序员可以让计算机在用户输入的圆形半径值大于等于0的情况下才去计算圆形面积,因此原先的代码可以修改为:​

import java.util.Scanner; ​
public class Exam02_01{​
public static void main(String[] args) {​
double r;//用于保存用户输入的圆形半径值​
double area;//用于保存计算所得圆形面积​
final double PI = 3.14;//圆周率π​

Scanner sc = new Scanner(System.in);//创建Scanner类对象sc​
System.out.println("请输入圆形半径:");//提示用户输入圆形半径值​
r = sc.nextDouble();//接收用户输入的圆形半径并保存于变量r中​
if(r>=0)
System.out.println("圆形的面积是:"+ PI*r*r);//①
}​
}​

代码中加粗的部分使用了条件语句。这样,仅在r的值在大于等于0的情况下才去执行语句①计算并输出圆形的面积。​

但是,如果用户所输入的圆形半径值r小于0,if关键字之后的条件就不成立,计算机也不会执行任何代码。输入了数据却看不到任何输出结果,这会让用户的操作体验非常差。合理的做法是:当用户输入的半径值r小于0,要提示用户“输入有误”。为了能够在条件不成立的情况下提示用户输入数据有误,可以在程序中采用以下结构编写代码:​

if(条件)

    语句1;

else

    语句2;

在这个结构中,出现了关键字else。else表示“否则”。因此这个结构的作用是:if关键字后面的条件成立则执行语句1,否则执行语句2。把这种结构应用在计算圆形面积的程序中可以用来提示用户输入的半径值存在错误:​

import java.util.Scanner; ​

public class Exam02_01 ​
{​
public static void main(String[] args) {​
double r;//用于保存用户输入的圆形半径值​
double area;//用于保存计算所得圆形面积​
final double PI = 3.14;//圆周率π​

Scanner sc = new Scanner(System.in);//创建Scanner类对象sc​
System.out.println("请输入圆形半径:");//提示用户输入圆形半径值​
r = sc.nextDouble();//接收用户输入的圆形半径并保存于变量r中​
if(r>=0)
System.out.println("圆形的面积是:"+ PI*r*r);//①
else
System.out.println("半径值小于0,无法计算圆形面积!");//②
}​

在以上代码的加粗部分,如果r的值大于等于0,则执行语句① 计算圆形面积,否则执行语句②,在控制台上输出“半径值小于0,无法计算圆形面积!”。​

if与else关键字组合而成的if...else结构并不难理解。但初学Java的读者还需要注意以下几个细节:​

  • if后面的小括号之后千万不要写分号(;)​
  • if部分可以单独存在,但else部分则不能,它表示某种条件不成立的情况,因此else的前面必然有一个与之对应的if。​
  • 无论是if还是else,都仅能“附带”一条语句。也就是说,无论条件是否成立,都仅能执行一条语句。如果希望条件成立或不成立的情况下都能执行多条语句,则需要用一对大括号把希望执行的语句全部括起来:​

if(条件){

    语句1;

    语句2;

    ...

    语句n;

}

else{

    语句1;

    语句2;

    ...

    语句n;

}

按照这种格式书写代码,无论条件是否成立,都可以执行多条语句。另外,还要提醒各位读者养成两个好的编程习惯:​

  1. 即使if或else仅附带1条语句,最好也要加上大括号。​
  2. if和else所附带的语句最好都要有一定的缩进,这样可以体现出这些语句属于if或else。​

以上两个好习惯可以让代码具有更好的层次感和可读性。​

关系运算符与if...else结构互相配合可以完成很多操作。下面就来讲解其中一个经典案例:三数求最大值。所谓“三数求最大值”就是指从任意三个数中找到最大的那个并且输出到控制台。假设三个数字分别是a、b、c,找到它们中最大值的基本思路是:定义一个变量max用来保存最大的数,先用a与b做比较,找到它们中较大的那个并存入max中。然后用max与c做比较,如果c>max,则把c的值存入max。经过两次比较之后,变量max中就保存了三个数中最大的值,这个程序的完整代码如下:​

【例02_06三数求最大值】

Exam02_06.java​

import java.util.Scanner;

public class Exam02_06 {
public static void main(String[] args) {
int a, b, c;
int max;// 用来保存最大值
Scanner sc = new Scanner(System.in);
System.out.println("请输入变量a的值");
a = sc.nextInt();
System.out.println("请输入变量b的值");
b = sc.nextInt();
System.out.println("请输入变量c的值");
c = sc.nextInt();
//用一个if...else结构找到ab两个数中较大的数字,并保存到max中
if (a > b) {
max = a;
} else {
max = b;
}
//从max和c中找到较大的数字
if (c > max) {
max = c;
}
System.out.println("三个数中最大值是:" + max);
}
}

由用户从控制台上任意输入3个数,程序运行结果如图2-12所示。​

 第二章《Java程序世界初探》第7节:关系运算符及条件语句_关系运算符

图2-12 【例02_06】运行结果

除此文字版教程外,小伙伴们还可以点击这里观看我在本站的视频课程学习Java。

标签:语句,Java,max,System,else,运算符,圆形,初探,输入
From: https://blog.51cto.com/mugexuetang/5976682

相关文章

  • 第二章《Java程序世界初探》第5节:算术运算符
    在学习本小节内容之前,各位读者必须先理解几个概念:运算符、操作数和表达式。所谓“运算符”就是指具有一定运算意义的符号,例如+、-都是运算符。根据运算符完成运算所需数据量......
  • 第二章《Java程序世界初探》第6节:赋值运算符
    ​赋值运算符可以分为两类:普通赋值运算符和复合赋值运算符。普通赋值运算符只能起到简单的赋值作用,而复合赋值运算符则是先完成一次其他类型的运算然后再进行赋值操作。本小......
  • Triple 协议支持 Java 异常回传的设计与实现
    作者:ApacheDubboContributor陈景明背景在一些业务场景,往往需要自定义异常来满足特定的业务,主流用法是在catch里抛出异常,例如:publicvoiddeal(){try{......
  • 跟光磊学Java-Windows版IntelliJ IDEA安装和卸载
    IntelliJIDEA  安装、获得许可后才能使用IntelliJIDEA,如果不想使用IntelliJIDEA那么又应该如何卸载呢?1.IntelliJIDEA下载访问JetBrains官网,访问地......
  • 跟光磊学Java-macOS版IntelliJ IDEA设置
    IntelliJIDEA  在使用IntelliJIDEA开发项目之前还需要进行一些基本的设置,完成这些设置以后能让项目开发更加顺畅1.如何打开设置窗口在进行IntelliJIDE......
  • Triple 协议支持 Java 异常回传的设计与实现
    作者:ApacheDubboContributor陈景明背景在一些业务场景,往往需要自定义异常来满足特定的业务,主流用法是在catch里抛出异常,例如:publicvoiddeal(){try{......
  • 【Java】Tips
    GET还是POST?GET比POST更简单更快,可用于大多数情况下。不过,请在以下情况始终使用POST:缓存文件不是选项(更新服务器上的文件或数据库)向服务器发送大量数据(POST无大......
  • 跟光磊学Java-macOS版IntelliJ IDEA开发Java项目
    IntelliJIDEA  配置IntelliJIDEA后,就可以用它开发Java项目了,这里会手把手带领大家从头开始开发一个多模块的java项目1.IntelliJIDEA开发Java项目的流程......
  • 第二章《Java程序世界初探》第1节:认识Java语言的变量
    ​如果编写一个求绝对值的程序,开发者可以把程序设计为由用户从控制台上任意输入一个数字,然后计算这个数字的绝对值并输出到控制台上。为了完成这个操作,需要先向计算机申请一......
  • 第二章《Java程序世界初探》第2节:常量的使用
    ​所谓“常量”,就是指一个固定不变的量,例如圆周率π的值是固定不变的,因此π就是一个常量。程序员在写代码时总是会大量的使用到常量。比如在一段程序中需要计算机圆形的面积......