Java语言程序设计——篇二(2)

发布于:2024-07-09 ⋅ 阅读:(135) ⋅ 点赞:(0)

运算符与表达式

运算符

根据操作数个数的不同,往往分为

  • 单目运算符
  • 双目运算符
  • 三目运算符。
    按照运算符功能来分,基本的运算符有下面几类。
    算术运算符 +、-、*、/、%、++、–
    关系运算符 >、<、>=、<=、==、!=
    逻辑运算符 &&、||、 !、&、| 、^
    位运算符 >>、<<、>>>、&、|、^、~
    赋值运算符 =、扩展赋值运算符,如+=、/=等。
    条件运算符 ? :
    其他运算符 :包括分量运算符.、下标运算符[ ]、实例运算符instanceof、内存分配运算符new、强制类型转换运算符(类型)、方法调用运算符( )等。
1、算术运算符

+ - * / % +(取正) -(取负) ++ –
两个整数相“/”,结果为整数
对取模运算符“%”来说,其操作数可以为者浮点数。如37.2%10=7.2。(默认双精度)
Java语言对“+”进行了扩展,使它能够进行字符串的连接,如"abc"+“de”,得到字符串"abcde"。

2、关系运算符

关系运算符是双目运算符,用来比较两个数的关系,不能在浮点数之间作“==”的比较。 其运算结果是布尔类型的值true或false。当运算符所对应的关系成立时结果为true,否则结果为假。所有的关系运算符参见表4。
在这里插入图片描述

3、逻辑运算符( &&、||、 !、&、| 、^)

逻辑运算符用来计算布尔类型的值,有单目运算符和双目运算符,其运算结果是布尔类型的值true或false。
注:&&、 || 、!具有短路特性

4、位运算符( >>、<<、>>>、&、|、^、~)

位运算符分为按位运算符(Bitwise Operators)和移位运算符(Shift Operators)。位运算符用来计算整数类数值中的二进制位,计算结果也是整数
不同长度的整数进行按位运算时,会把二进制位数较短的整数的高位(左侧)补0,补齐位数后再进行运算。

5、赋值运算符

赋值运算符分为简单赋值运算符(Simple Assignment Operator)复合赋值运算符(Compound Assignment Operators)。简单赋值运算符只有=,用于计算运算符=的右边表达式的值并将其送到左边的存储单元中。使用复合赋值运算符,可以使得表达式变得简洁,同时也有助于加快程序运行速度。所有的赋值运算符参见表5。
复合赋值运算表达式的一般形式是:
<表达式1> <运算符>= <表达式2>

在这里插入图片描述

6、条件运算符

一般形式为:expression?statement1:statement2
注:
1.statement1和statement2需要返回相同的数据类型,且该类型不能是void。
2.一般用来实现if-else条件语句的功能
(max=a>b?a:b)

7、字符串运算符

字符串运算符 “+” 是以String为对象进行的操作。运算符“+”完成字符串连接操作,如果必要,则系统自动把操作数转换为String型。

float a=100.0; //定义变量a为浮点型
print(“The value of a is”+a+“\n”); //系统自动将a转换成字符串
String s1+=a;//s1=s1+a,若a非String型,自动转换为String型。

8、 运算符的优先级和结合性

在对一个表达式进行运算时,要按运算符的优先顺序从高向低进行,同级的运算符则按从左到右的方向进行,故运算符有优先级和结合性。
不必死记硬背运算符的优先级。必要时可以在表达式中使用圆括号,圆括号的优先级最高。圆括号还可以使表达式显得更加清晰。

int x = 5;
int y = 5;
boolean z = x * 5 == y + 21;
boolean z = (x * 5) == (y + 21)

由键盘输入数据

键盘输入的数据,不管是文字还是数字,Java皆视为字符串,因此若是要由键盘输入数字则必须再经过转换。

由键盘输入数据—输入字符串

//appA_3.java        由键盘输入字符串
import java.io.*;    //加载java.io类库里的所有类
public class App3
{
  public static void main(String[] args) throws IOException
  {
    BufferedReader buf;
    String str;
    buf = new BufferedReader (new InputStreamReader (System.in));
    System.out.print("请输入字符串;");
    str = buf.readLine();        //将输入的文字指定给字符串变量str存放
    System.out.println("您输入的字符串是:"+str);   //输出字符串
  }
}

由键盘输入数据—输入数值

由键盘输入的数据,不管是文字还是数字,Java皆视为字符串,
因此若是要由键盘输入数字则必须再经过转换。

//App4.java         由键盘输入数值型数据
import java.io.*;
public class App4
{
  public static void main(String[] args) throws IOException
  {
    float num;
    String str;
    BufferedReader buf;
    buf=new BufferedReader(new InputStreamReader(System.in));
    System.out.print("请输入一个实数:");
    str=buf.readLine();         //将输入的文字指定给字符串变量str存放
    num= Float.parseFloat(str);   //将str转换成float类型后赋给num
    System.out.println("您输入的数为:"+num);
  }
}

由键盘输入数据——多个数据

//方法1:App5.java     由键盘输入多个数据
import java.io.*;
public class App5{
  public static void main(String[] args) throws IOException
  {
    int num1,num2;
    String str1,str2;
    InputStreamReader in;
    in= new InputStreamReader(System.in);
    BufferedReader buf;
    buf=new BufferedReader(in);
    System.out.print("请输入第一个数:");
    str1=buf.readLine();         //将输入的内容赋值给字符串变量str1
    num1=Integer.parseInt(str1);   //将str1转成int类型后赋给num1
    System.out.print("请输入第二个数:");
    str2=buf.readLine();         //将输入的内容赋值给字符串变量str2
    num2=Integer.parseInt(str2);   //将str2转成int类型后赋给num2
    System.out.println(num1+"*"+num2+"="+(num1*num2));
  }
}

简化输入方式

为了简化输入操作,从Java SE 5版本开始在java.util类库中新增了一个类专门用于输入操作的类Scanner,可以使用该类输入一个对象。

  • 标准输入/输出流
    System.out 标准输出流
    System.in 标准输入流
  • 使用Scanner类从控制台输入,创建它的对象,以读取来自System.in 的输入:
    Scanner input = new Scanner(System.in);( Scanner类在包java.util里,在第一行要被导入)
    对象可以调用nextDouble()方法来获取一个double值
    double d = input.nextDouble();
  • Scanner对象的方法:在该结构中用创建的reader对象调用nextDouble()方法来读取用户从键盘上输入的double型数据,也可用reader对象调用下列方法,读取用户在键盘上输入的相应类型的数据:
    nextByte()、 nextShort()、 nextInt()
    nextLong()、 nextFloat() 、nextDouble()
    next() 读入一个字符串
    nextLine() 读取一整行文本

    由键盘输入数据—多个数据

//方法2:App3_6.java     由键盘输入多个数据
import java.util.*;    //加载java.util类库里的所有类
public class App3_6
{
  public static void main(String[] args)
  {
    int num1;
    double num2;
    Scanner reader=new Scanner(System.in);
    System.out.print("请输入第一个数:");
    num1= reader.nextInt();       //将输入的内容作为int型数据赋值给变量num1
    System.out.print("请输入第二个数:");
    num2= reader.nextDouble();    //将输入的内容作为做double型数据赋值给变量num2
    System.out.println(num1+"*"+num2+"="+(num1*num2));
  }
}

例题展示

  • 编写程序,给定半径,计算圆的面积

代码展示:

package shujia_test1;

import java.util.Scanner;
public class Csdn2_2 {
       public static void main(String[] args) {
       Scanner input = new Scanner(System.in);
       System.out.print("Enter a number for radius:");
       final double PI = 3.14159;
      double radius = input.nextDouble();
      double area = radius * radius * PI;
      System.out.println("The area is"+" " + area);
       }
}

运行结果:

在这里插入图片描述
博主用心写,读者点关注;互动传真情,知识不迷路


网站公告

今日签到

点亮在社区的每一天
去签到