1.顺序结构:
2.判断结构:
if(条件表达式)
{
执行语句;
}
执行语句是单条语句时,大括号可以省略。(for也一样)
一个if整体就相当于一个单条语句。单条语句一般以分号或者大括号结束。
if(条件表达式)
{
执行语句1;
}
else
{
执行语句2;
}
执行语句1,2只会而且肯定会执行一个。
三元运算符?:就是if else 语句的简写格式:
当if else 运算后,有一个具体的结果时,可以简写成三元运算符。如三元运算符不能直接执行输出语句。
if(条件表达式1)
{
执行语句1;
}
else if(条件表达式2)
{
执行语句2;
}
...
else
{
执行语句n;
}
3.选择结构:
switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
...
default:
执行语句;
break;
}
能选择的数据只有4种:byte short int char等。
switch大括号里的内容会全部加载到内存,所以内容没有顺序,但是程序会先执行第一个case,然后依次读,最后读default。
靠近尾部大括号的break可以省略。
如果正确case的break省略掉了,那么后面的case里的执行语句会继续执行。可应用于单项多选择条件。
default里的break不代表程序结束,可以在开头或者中间,因为内容没有顺序。
开发的时候,if和switch的使用场景:
if:
1.对具体的值进行判断
2.对区间判断
3.对运算结果是boolean类型的表达式进行判断
switch:
1.对具体的值进行判断(值的个数通常是固定的)
对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案都加载进内存,效率相对高一些。但是不常用,因为switch功能性差,书写麻烦。
4.循环结构:while, do while, for
1.
while(条件表达式)
{
执行语句;
}
ctrl + c 结束控制台的运行
注意控制两点:循环条件,循环次数。
2.
do
{
执行语句;
} while(条件表达式);
开发用的较少
3.
for(初始化表达式;循环条件表达式;**循环后** 的操作表达式)
{
执行语句;
}
多个表达式用逗号隔开。
循环条件必须是boolean值。
例子:
int x = 1;
for(System.out.println("a"); x < 3; System.out.println("b"))
{
System.out.println("c");
x++;
} //acbcb
for 和 while 的区别:
1.for和while可以互换。
2.如果需要通过变量来对循环进行控制,该变量只作为循环增量存在时,小区别就出来了:
for循环初始化的变量在循环结束后会消失,不能再次使用(节省内存空间)。
如果循环变量还需要继续使用,优先使用while。
无限循环应用:能有让循环适当的等待(不知道循环多少次,阻塞式方法),不定义变量控制次数。
while(true) { }
for( ;(不写默认就是true) ; ) { }
常用的:if while for
循环结构使用场景:
1.当对某些代码执行很多次时,使用循环结构完成。
2.当对一个条件进行一次判断的时候,可以使用if语句。
3.当对一个条件进行多次判断的时候,可以使用while语句。
注意:
1.在使用循环时,要明确哪些是需要参与循环的语句。
2.循环通常情况下,需要定义条件,和控制循环次数。
5.循环嵌套:
/*大圈套小圈思想:
一种重复的情况,这种重复情况中的每一次又对应另外一种情况多次。
*/
for(int i = 0; i < 4; i++) //外循环控制的是行数
{
for(int j = 0; j < 4; j++) //内循环控制的是个数,只要保证区间域等于个数就行。
{
System.out.print("*");
}
System.out.println();
}
6.转义符:
\n : 换行
\t:制表符
\b:退格
\r:返回行首
在Linux下的换行:\n
\r 使光标移动到本行行首,
\n 使光标移动到下一行行首
在windows下的换行:\r\n
\r\n 使光标移动到本行行首,然后移动到下一行行首
7.其他流程控制语句:
break:跳出当先循环,用于选择结构(switch),循环结构
continue:结束本次循环,继续下次循环,用于循环结构
break,continue单独存在时,下面不要定义其他语句,会报错。
可以用if控制break何时跳出:
if(x>1)
break;
如果出现了循环嵌套,break/continue想要跳出或者继续指定的循环,可以通过标号来完成:
xiaoqiao: for()
{
wangcai: for()
{
break xiaoqiao;
//continue wangcai:
}
}