键盘录入数据:
步骤:
1.导入Scanner包 import java.util.Scanner;
2.创建文本扫描器对象 Scanner scan = new Scanner(System.in);
3.提示并录入值 System.out.println("请输入XXX");
int number = scan.nextInt();
注意事项:
录入字符串两种写法:
String number = scan.next();
String number = scan.nextLine();行,enter表示一个字符(回车就表示一个字符,)
流程控制语句:
if 选择结构 :
注意事项:
1)if的后面不能有;
if(表达式);{} 错误语法
有左大括号的地方不能有分号;有分号的地方不能有左大括号
2)如果使用if格式1,里面的语句是条语句,
{}是可以省略的!,不建议省略!
if(表达式){
语句;//针对单个场景进行判断
}
执行流程:
首先判断表达式是否成立,
如果成立,执行语句1;
否则,执行语句2
应用场景:针对两种情况进行判断
if(表达式){
语句1;
}else{
语句2;
}
流程:
首先,判断表达式1是否成立,成立,执行语句1
否则,判断表达式2是否成立,成立,执行语句2
否则,判断表达式3是否成立,成立,执行语句3
....
如果上述都没有匹配的结果:执行else的语句;
if(表达式1){
语句1;
}else if(表达式2){
语句2;
}else{
语句3;
}
-----------------------------------------------------------------------------------------
switch 分支结构:
//格式
switch(表达式){
case 值1:
语句1;
break ;
case 值2:
语句2;
break;
...
default:
语句n+1;
break ;
}
执行流程:
首先表达式接收一个值
然后和case语句 值1比较,如果成立,执行语句1,break 结束switch
值1不匹配,判断和值2是否匹配,如果匹配成功,执行语句2,结束switch
...
...
上面case 语句都不成立,
执行default语句,执行语句n+1,结束switch!
注意事项:
switch(表达式)
表达式可以时byte,int,char jdk5以后可以支持enum(枚举) jdk7以后可以时String
重点:
switch语句的注意事项
1)case语句的后面只能是常量 (Java是一个强类型语言)
前端:javascript :switch语句的case后面可以常量也可以变量
2)break语句:不要轻易省略掉, 会造成case 穿透现象(此时,
如果跟某个case已经匹配,但是没有语句break,下面的case就不会对比,直接执行语句)
break:结束,中断 :结束switch
3)switch语句的结束条件
a)语句break结束
b)程序默认执行的到末尾!
4)default语句可以在switch语句中的任何位置,不影响执行流程!
当前case后面的都匹配,执行default语句
如果default语句在语句中的话,break语句 不能省略!
如果default语句在switch末尾的话,break语句是可以省略!
for循环:
格式:
for(初始化语句;条件语句;控制体语句){
循环体语句;
}
执行流程:
初始化语句---->条件语句---->循环体语句---->控制体语句
注意事项:
for(初始化语句;条件语句;控制体语句)
1.括号里面的值如果不写,只写循环体语句,会时一个死循环;
2.括号里面的三个条件语句可以放循环体外面来写;
for循环的嵌套:
格式:
for(初始化语句1;条件语句1;流程控制体1){
for(初始化语句2;条件语句2;流程控制体2){
循环语句;
}
}
执行流程:
初始化语句1--->条件语句1--->内层for循环--->流程控制体1(直到条件不满足推出循环)
示例代码:
打印一个四行五列的*;
for(int i = 1; i <= 4; i++){
for(int j = 1; j <= 5; j++){
System.out.print("*");
}
System.out.println();
}
输出:
*****
*****
*****
*****
while&do while循环:
while循环格式:
初始化值;
while(条件语句){
循环体;
控制体语句;
}
执行流程:
初始化语句:给变量进行赋值
当前条件表达式成立,执行循环体语句;
继续控制体语句, 再次执行条件表达式
...
...
当条件表达式不满足条件,while循环结束
------------------------------------------------------
while和for循环的区别什么?
1)应用场景的区别:
是否明确循环次数
如果明确循环次数,优先使用for循环 (开发中经常使用)
当不明确循环的次数,使用while循环
2)从格式---(内存角度) :for优于 while
for循环结束之后,不能够访问到for循环中的变量;
循环结束了, 变量(内存中变量:临时变量)就需要被回收了, 节省内存(栈内存)
while循环:由于存在初始化语句是在while外面定义的,
所有当前while循环,依然访问到while循环中的变量
------------------------------------------------------
do while循环格式:
初始化语句;
do{
循环体语句;
控制体语句;
}while(条件表达式) ;
注意:不管表达式成立不成立.循环体都会运行一次;
跳出控制语句:
跳转控制语句
break ;
continue ;
return ;
break:表示中断结束的意思,不能单独场景使用
continue:结束当前循环,立即下一次循环!
return 也属于跳转控制语句
结束方法去使用
一般 情况:return需要结合有具体返回值类型的方法使用!
return很少单独使用!
return:返回