2.6 程序流程控制
2.6.1 判断结构
if 语句
1. if(条件表达式)
{
执行语句:
}
2. if(条件表达式)
{
执行语句:
}
else
{
执行语句:
}
3.if(条件表达式)
{
执行语句:
}
else if(条件表达式)
{
执行语句:
}
......
else
{
执行语句:
}
【三元运算符就是if-else语句的简写。*何时使用简化?*当if-eles运算后,有一个具体的值,就可以简化写成三元运算符。】
2.6.2选择结构
switch 语句
格式:
switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
......
default:
执行语句;
break;
}
if 和switch 的应用:
if:
1、对具体的值进行判断。
2、对区间判断。
3、对运算结果是boolean类型的表达式进行判断。
switch :
1、对具体的值进行判断。
2、值的个数通常是固定的。
3、对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案都加载进内存。效率相对高一点。
2.6.3循环结构
代表语句: while ,do while,for
do while特点:
是条件无论是否满足, 循环体至少执行一-次。
while语句格式:
while (条件表达式)
{
执行语句;
}
do while语句格式:
do
{
执行语句;
}while (条件表达式) ;
while练习——累加器思想
class WhileTest
{
public static void main(String[] args)
{
/*
练习:
获取1到10 10个数字的和。
0+1
1+2
3+3
6+4
10+5
思路:
1, 每次参与加法的数值不确定。
2,每次的出现的和数据也不确定。
3, 发现参与加法运算的数值有递增规律。
4, 每一次都是加法运算在重复,并且都是和再加上下一个数值。
步骤:
1,定义一个变量,记录住参与加法运算的数据。
2,定义一个变量,记录中每一次的出现的和。
3,对于记录参与加法运算的数据进行自增。
4,因为加法运算需要重复,就要想到循环结构。
*/
//累加算法
int x = 1;//记录参与加法的数据。
int sum = 0;//记录住每一次的和。
while (x<=10)
{
sum=sum+X;
X++:
}
System.out,println("sum ="+sum);
}
}
while练习——计数器思想
class WwhileTest2
{
public static void main(String[] args)
{
/*
练习:
1~100之间6的倍数出现的次数。
要求:自己独立完成思想的书写。和步骤的文字描述。
*/
//计数器思想
intx=1;
int count = 0;
while (x<=100)
{
if(x % 6 == 0)
count++ ;
x++ ;
}
System. out. println ("count=" +count) ;
}
}
for循环格式:
for (初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句; (循环体)
}
注:
- a,for里面的连个表达式运行的顺序,初始化表达式只读1次,判断循环条件,
为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,
重复找个过程,直到条件不满足为止。 - b, while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是
在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。 - c, 最简单无限循环格式: while(true){}, for( ; ; ){},无限循环存在的原因是并不知道循
环多少次,而是根据某些条件,来控制循环。 - 什么时候使用循环结构呢?
当对某些代码执行很多次时,使用循环结构完成。
当对一个条件进行一次判断时,可以使用if语句。
当对一个条件进行多次判断时,可以使用while语句。
for循环的嵌套
package javaTest_day01;
public class Forfor99 {
public static void main(String[] args) {
/*打印九九乘法表*/
for(int i=1;i<=9;i++) {
for(int j=1;j<=i;j++) {
System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println();
}
}
}
打印倒三角形
package javaTest_day01;
public class For_nest02 {
public static void main(String[] args) {
/*
* * * * * *
* * * * *
* * * *
* * *
* *
*/
//三角形的尖向上则内循环的变量第二个控制的值等于外循环的变量的值
for(int i=1;i<=5;i++) {
for(int y=1;y<i;y++) {
System.out.print(" ");
}
//三角形的尖向下则内循环的变量第一个控制的值等于外循环的变量的值
for(int j=i;j<=5;j++)
{
System.out.print("* ");
}
System.out.println();
}
System.out.println("hello world!");
}
}
转义字符
\n | 回车 |
---|---|
\t | 制表符 |
\b | 退格 |
\r | 按下回车键 |
windows系统中回车符其实是由两个符号组成的 \r\n
Linux中回车符就是 \n.
2.6.4其他流程控制语句
break(跳出),continue(继续)
- break语句:应用范围:选择结构和循环结构。
- continue语句:应用于循环结构。
- 注:
a, 这两个语句离开应用范围,存在是没有意义的。
b, 这个两个语句单独存在下面都不可以有语句,因为执行不到。
c, continue语句是提前结束本次循环,开启下次循环。break则是跳出循环,结束循环。
d, 标号的出现,可以让这两个语句作用于指定的范围。
总结
1、获取用户输入的内容
想要利用Scanner需要如下三步
1.在类上面的第一行import java.util.Scanner;
2.需要输入之前Scanner y = new Scanner(System.in);//对象
3.通过y.让他来做事int = nextInt();String = nextLine();都可以读取输入的信息
2、循环
for( 1初始值;2终点判定条件;4变化量){
3好多好多执行;
}
允许将三个条件都写在()内不是必须
初始值;
for(;终点判定条件;){
好多好多执行;
变化量;
}
初始值;
while(终点判定条件){//内只允许写一个
好多好多执行;
变化量;
}
do{
好多好多执行;
}while();