Java语言基础
- 运算符与表达式
- 运算符
- 1、算术运算符
- 2、关系运算符
- 3、逻辑运算符( &&、||、 !、&、| 、^)
- 4、位运算符( >>、<<、>>>、&、|、^、~)
- 5、赋值运算符
- 6、条件运算符
- 7、字符串运算符
- 8、 运算符的优先级和结合性
- 由键盘输入数据
- 由键盘输入数据---输入字符串
- 由键盘输入数据---输入数值
- 由键盘输入数据——多个数据
- 简化输入方式
- 由键盘输入数据---多个数据
- 例题展示
- 代码展示:
- 运行结果:
运算符与表达式
运算符
根据操作数个数的不同,往往分为
- 单目运算符
- 双目运算符
- 三目运算符。
按照运算符功能来分,基本的运算符有下面几类。
算术运算符 +、-、*、/、%、++、–
关系运算符 >、<、>=、<=、==、!=
逻辑运算符 &&、||、 !、&、| 、^
位运算符 >>、<<、>>>、&、|、^、~
赋值运算符 =、扩展赋值运算符,如+=、/=等。
条件运算符 ? :
其他运算符 :包括分量运算符.、下标运算符[ ]、实例运算符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);
}
}
运行结果:
博主用心写,读者点关注;互动传真情,知识不迷路