3.1 表达式和语句
常量、变量代表数据。由变量或常量 + 运算符构成的计算表达式。
但其实表达式一共分为三种:
(1)变量或常量 + 运算符构成的计算表达式
(2)new 表达式,结果是一个数组或类的对象。(后面讲)
(3)方法调用表达式,结果是方法返回值或void(无返回值)。(后面讲)
程序的功能是由语句来完成的,语句分为单语句和复合语句。
单语句又分为:
(1)空语句,什么功能都没有。它就是单独的一个分号;(==需要避免==)
(2)表达式语句,就是表达式后面加分号;
不是所有表达式加分号都能称为一个独立的语句的,只有以下三种表达式加上分号才能构成一个独立的语句。
-
new表达式,
-
方法调用表达式,
-
计算表达式中的赋值表达式、自增自减表达式
//空语句
;
//表达式语句
i++; //自增表达式 + ;
System.out.println("hello , HaoGu"); //方法调用表达式 + ;
复合语句分为:
(1)分支语句:if...else,switch...case
(2)循环语句:for,while,do...while
(3)跳转语句:break,continue,return,throw
(4)try语句:try...catch...finally(后面学习)
(5)同步语句:synchronized(后面学习)
不同的语句执行顺序和效果是不同的,下面我们一一学习它们。
3.2 顺序结构
顺序结构就是程序从上到下逐行地执行。表达式语句都是顺序执行的。并且上一行对某个变量的修改对下一行会产生影响。
public class TestStatement{
public static void main(String[] args){
int x = 1;
int y = 2;
System.out.println("x = " + x);
System.out.println("y = " + y);
//对x、y的值进行修改
x++;
y = 2 * x + y;
x = x * 10;
System.out.println("x = " + x);
System.out.println("y = " + y);
}
}
3.3 输入输出语句
3.3.1 输出语句
1、两种常见的输出语句(基础阶段常用)
-
换行输出语句:输出内容后进行换行,格式如下:
System.out.println(输出内容);//输出内容之后,紧接着换行
-
不换行输出语句:输出内容后不换行,格式如下
System.out.print(输出内容);输出内容之后不换行
示例代码:
public class TestPrintlnAndPrint {
public static void main(String[] args) {
String name = "刘老师";
int age = 18;
//对比如下两组代码:
System.out.println(name);
System.out.println(age);
System.out.print(name);
System.out.print(age);
System.out.println(); //()里面为空,效果等同于换行,输出一个换行符
//等价于 System.out.print("\n"); 或 System.out.print('\n');
//System.out.print();//错误,()里面不能为空 核心类库PrintStream类中没有提供print()这样的方法
//对比如下两组代码:
System.out.print("姓名:" + name +",");//""中的内容会原样显示
System.out.println("年龄:" + age);//""中的内容会原样显示
System.out.print("name = " + name + ",");
System.out.println("age = " + age);
}
}
注意事项:
换行输出语句,括号内可以什么都不写,只做换行处理 不换行输出语句,括号内什么都不写的话,编译报错 如果()中有多项内容,那么必须使用 + 连接起来 如果某些内容想要原样输出,就用""引起来,而要输出变量中的内容,则不要把变量名用""引起来
2、格式化输出(了解)
-
%d:十进制整数
-
%f:浮点数
-
%c:单个字符
-
%b:boolean值
-
%s:字符串
-
....
public class TestPrintf {
public static void main(String[] args) {
byte b = 127;
int age = 18;
long bigNum = 123456789L;
float weight = 123.4567F;
double money = 589756122.22552;
char gender = '男';
boolean marry = true;
String name = "张三";
System.out.printf("byte整数:%d,年龄:%d,大整数:%d,身高:%f,身高:%.1f,钱:%f,钱:%.2f,性别:%c,婚否:%b,姓名:%s", b,age,bigNum,weight,weight,money,money,gender,marry,name);
}
}
3.3.2 输入语句
键盘输入代码的四个步骤:
1、申请资源,创建Scanner类型的对象
2、提示输入xx
3、接收输入内容
4、全部输入完成之后,释放资源,归还资源
1、输入各种类型的数据
import java.util.Scanner;
public class TestInput {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入一个整数:");//先执行,先显示这句话
int num = input.nextInt();//接收键盘输入, 它们有顺序要求
System.out.println("num = " + num);
System.out.print("请输入一个小数:");
double d = input.nextDouble();
System.out.println("d = " + d);
System.out.print("请输入一个布尔值:");
boolean b = input.nextBoolean();
System.out.println("b = " + b);
System.out.print("请输入一个大整数");
long big = input.nextLong();
System.out.println("big = " + big);
System.out.print("请输入一个字符串");
String str = input.next();
System.out.println("str = " + str);
System.out.print("请输入单个字符:");
char c = input.next().charAt(0);
System.out.println("c = " + c);
input.close();//建议大家记得它,代码没有错误,但是会造成JVM以外的操作系统相关内存没有得到是否
}
}
3.4 分支语句
3.4.1 单分支条件判断:if
-
if语句第一种格式: if
if(条件表达式){
语句体;
}</