1.程序结构
(1)顺序结构:按照代码的书写顺序一行行的执行,称之为顺序结构(多线程不一定)。eg:
(2)分支结构:(条件分支-->满足不同的条件才会执行的代码)
1》 if分支
if(表达式){
//表达式为true执行的语句
}
2》 if...else分支
if(布尔表达式){
//条件满足的语句
}else{
//条件吧满足的语句
}
3》
if(表达式1){
//表达式1满足的代码
}else if(表达式2) {
//表达式2满足的代码
}...else if(表达式n){
//...
}else{
//上述表达式都不满足执行的代码 }
PS:程序中若遇到分号,则认为这个语句已经结束了。
4》switch分支:一般用在分支个数确定、根据确定的值选择不同分支的情景下
switch(int、cha、String、枚举){
case1:满足条件1执行的语句
(break;)
case2:满足条件2执行的语句
(break;)
....
case n: ....
break;
default:上述条件都不满足执行的语句
(break;)
}
----> 先计算表达式的值和第一个case开始,一次进行比较,一旦遇到匹配的值,执行该case的语句,直到遇到break为止。当没有任何case语句与之匹配时,执行default对应的语句。
PS:
a.使用switch的也可以用if,但使用if的不一定可以用switch。switch不支持复杂条件。(if更多的是表达条件的判断)
b.多个case语句中的常量值不能重复的(每个分支要保证其独立性和唯一性)。
c. switch只支持int char String enum,不支持long与浮点型。小于int的类型byte char short也可以,具体存储都按照int存储。
d. break千万不能省略,否则会造成歧义(但是语法层面没问题),否则就会从满足条件的第一个分支开始向下执行,一直碰到break为止或者走到结尾。
e.支持嵌套,但不推荐。
(3)循环结构:
1》while语句:只知道循环的终止条件,不明确循环次数,适合这种场景。
while(循环条件表达式){
//循环体语句
}
---> 当循环条件为true时,执行循环体语句,否则结束循环。
PS:循环次数不是很直观,但循环的终止条件很明确,在while结构中不太关注循环次数。
PS:关于循环的两个关键字:
break:提前结束当前这一层循环。eg:
continue:结束本轮循环,从continue之后的语句本次循环就不再执行,直接进行下一轮循环。eg:
2》for循环:明确知道循环的次数以及迭代条件
for(初始化条件表达式1;布尔表达式2或说循环继续条件;循环的迭代条件){
//循环体代码4;
}
---->一直循环,直到不满足表达式2则循环终止。
PS:continue和break也适用for语句。
PS:goto在Java中作为保留字,是个关键字,但是没用。
PS:break和continue都是作用于当前这一层循环的。可以使用标签让break跳出多层循环。eg:
-->标签outter后面必须紧跟循环 语句,中间不能插入任何其它语句。break+标签会直接跳出标签包含在内的所有循环。
continue标签:会跳转到标签紧跟着的最外层循环继续执行。只会结束当前这一层,相当于之前的简单的break。
2.输入输出
(1)
输入input、输出output -- IO流
输入流:以电脑为参考系,从外部向程序或电脑输入一个数据。
输出流:从程序或电脑向外部输出一个数据。
系统输入输出 -- 标准输入输出
标准输入:显示器System.out是Java中的标准输出对象--系统的标准输出。
标准输出:键盘System.in是Java中的标准输入对象(从键盘获取对象)。
PS:默认输出输出到控制台。
(2)Java中三种常用的输出方法:
1》println(传递任意数据类型,多个类型使用+拼接),输出内容后自带换行符,println()什么都不传,默认当换行输出使用。
2》print(任意数据类型,多个类型使用+拼接)。与 println 的区别是:输出后不带换行;必须要在()传递参数。
3》printf,用法与C语言相同。
(3)从键盘中读取一个内容--使用Scanner类。最原始的系统输入。
Scanner scanner=new Scanner(System.in);//产生一个系统输入的对象
int a=scanner.nextInt();//从键盘获取一个数据,假设此时获取整型,nextXXX()表示获取相应的数据类型
String str=scanner.nextLine();//获取字符串
double b=scanner.nextDouble(); //获取浮点型
PS1:调用Scanner对象的 hasNextXXX() 方法-->就会判断系统输入的是否是指定类型的内容,若碰到不是相应的类型,循环终止。hasNextXXX() 。
eg:hasNextInt() --->退出程序:当读取到一个非整数,方法就会返回false,一串字符即可
PS2:hasNextLine() --->退出程序:win:ctrl+D或ctrl+Z,mac:command+D
(4)转义字符
有时在输出时,若想输出一些特殊符号,就需要用到转义字符。在Java代码中的反斜杠(\)是转义字符,因此需要表示字面意义上的\,就需要使用双反斜杠(\\)。