输入输出
编写控制台的应用程序:
输入:input(将数据从外部的设备传递到程序中
键盘输入,鼠标操作,读取文件,读取网络的信息
用户在运行程序时,通过控制台输入一定的数据,由程序进行采集
常用类:Scanner(JDK提供的输入的扫描器))
输出:output(将数据从程序传递到外部设备
显示器显示,打印,保存到文件中,传递到网络中
System.out.println();)
package com.situ.demo;
import java.util.Scanner;
import javax.sound.midi.Soundbank;
public class Demo01 {
public static void main(String[] args) {
//输入
//输入两个整数,计算他们的和
//1.创建一个Scanner类的对象,必须引入Scanner这个类,Scanner位于java.util.Scanner类
Scanner scanner = new Scanner(System.in);
//2.通过Scanner的next方法获取用户在控制台中输入的字符
/*
* 对于字符串的获取,可以使用next();方法,返回值是String类型
* 对于8中基本数据类型,都提供了nextXXX();方法
* 如:scanner.nextInt();采集一个int类型的值
* scanner.nextDouble();采集一个Double类型的值
*/
System.out.println("请输入一个整数:");
int a = scanner.nextInt();
System.out.println("您输入的数字是:"+a);
System.out.println("请再输入一个整数:");
int b = scanner.nextInt();
System.out.println("您又输入的数字是:"+b);
System.out.println("您输入的两个数字的和是:"+(a+b));
System.out.println("计算公式是:"+a+"+"+b+"="+(a+b));
//输出一个值不换行
System.out.print("不换行");
System.out.print("也不换行");
//不输出任何内容,只进行换行操作
System.out.println();
System.out.println();
System.out.println();
System.out.print("上面有三个空行");
}
}
运算符和表达式
表达式:通常是由运算符,变量,常量,方法调用组成,对变量常量进行一定的运算的操作。
算式
-
算数运算符
数学上的算数运算:
加法运算
正号
字符串的拼接
减法运算
负号
乘法运算
/
除法运算
除法和数据类型的相关
四则运算:整数进行运算,结果也是整数,10/3 = 3小数部分全部去除
如果存在一个是小数,结果就是小数
%
求余运算
10/3 = 3…1
在java中小数也是可以求余的,余数可以是小数
++
自增,在原来的值+1
–
自减,在原来的值-1
自增和自减是单目运算符,操作数可以在前面也可以在后面,a++,++a
前置运算:先对变量进行操作,在把运算后的值作为我们要使用的值。例如:a=1;(1+(++a))=3; 算式运算前,先执行前置运算,a=2,后变成1+2=3;
后置运算符:先计算表达式的值在进行自增自减操作。例如:a=1;(1+(a++))=2;算式运算后,在执行后置运算符,顺序为:先执行1+1,在执行a++
-
比较运算符
主要针对数值型进行运算,比较两个值的大小关系,运算结果是布尔型,如果不等式成立,结果就是true反正就是false
“>”
“>=”
“<”
“<=”
前四个运算符,只能对数值型进行运算,byte,short,int,long.float.double
“==”
“!=”
这两个运算符,除了可以对数值进行运算,话可以对引用类型进行运算,比较两个引用类型的变量,是否指向同一块内存地址(面向对象)
-
逻辑运算符
进行逻辑运算,操作数必须是布尔型,操作结果也是布尔型
逻辑与:”&& 或&“当两个操作数都是true的时候,运算结果为true,否则,运算结果为false
逻辑或:”|| 或|“当两个操作数都是false的时候,运算结果为false,否则,运算结果就是true
逻辑非:”!“单目运算符如果操作数是true,运算结果为false,否则,为true
短路运算:针对&&,||逻辑运算,如果第一个运算,已经可以决定结果,第二个操作数就不会再执行了
-
位运算符
对数值进行二进制运算,
按位与 “&”
按位或 “|”
按位异或 “^”
按位取反 “~”
左移位 “<<” 相当于*2
右移位 “>>” 相当于/2
无符号移位 “>>>”
如何以最快的方式,完成10*8的运算的:10<<3,此时2是2的3次方
-
赋值运算符
”=“
为变量/常量进行赋值,右边的值赋给左边
复合赋值运算符
常用的二目运算符,与”=“组合,组成了复合赋值运算符
A+=B 相当于 A=A+B
-
三目运算符
A?B:C
相当于一个条件判断运算
先计算表达式A的值,如果A成立,或A的值是true,整个运算符的运算结果取B的结果,如果A的值是false,整个运算符的运算结果取C的结果。
类似于短路运算,B和C只会执行一个。
package com.situ.demo; public class Demo03 { public static void main(String[] args) { //三目运算符,求较大值 int m=10; int n = 20; System.out.println(m>n?m:n); } }
运算符的优先级*
如果再一个表达式中,包含多种运算符,应该如何运算?
先算乘除,在做加减,有括号先算括号内的