键盘的录入
- 导包:
import java.util.Sanner; - 创建键盘录入对象:
Scanner sc=new Scanner(System.in); - 通过对象获取数据
int x=sc.nextlnt();
当然除了录入整形可也以录入其它数据类型。
流程控制语句
- 什么是流程控制语句?
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响,所以我们必须清楚每条语句的执行流程,而且很多时候要通过控制语句的执行顺序来实现我们要完成的功能。 - 流程控制语句的分类
顺序结构
选择结构
循环结构
顺序结构
程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数代码都是这样执行的。
例如 :
package day1213;
public class Shipin01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("姓名:张三");
System.out.println("年龄:20");
System.out.println("性别:男");
System.out.println("程序结束");
}
}
/*运行结果 : 姓名:张三
年龄:20
性别:男
程序结束*/
选择结构
也被称为分支结构,选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
- 选择结构的分类:if语句、switch语句;
- if语句(格式一):先计算比较表达式的值,看返回的是true还是false。
如果是true,就执行语句体;
如果是false,就不执行语句体;
代码演示如下;
package day1213;
import java.util.Scanner;
public class Shipin02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
System.out.print("请输入成绩:");
int score=scanner.nextInt();
if(score>90){
System.out.println("考的不错 奖励500块");
}
System.out.println("程序结束!");
}
}
- if~else语句(格式二):先计算比较表达式的值,看返回的是true还是false。
如果是true,就执行语句体1;
如果是false,就执行语句体2;
代码演示如下:
package day1213;
import java.util.Scanner;
public class Shipin04 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
System.out.print("请输入你的成绩:");
int a=scanner.nextInt();
if(a>100||a<0){
System.out.println("输入格式错误");
}else if(a<=100&&a>85){
System.out.println("优秀");
}else if(a<=85&&a>75){
System.out.println("良好");
}else if(a<=75&&a>=60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
}
}
- if~else嵌套(格式三):在if~else语句中再加入if~else进行更深层次的选择。
代码演示如下:
package day1213;
import java.util.Scanner;
public class Shipin05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
System.out.print("请输入运动员成绩");
int s=scanner.nextInt();
if(s<=10){
System.out.print("请输入运动员性别:");
String sex=scanner.next();
if("男".equals(sex)){
System.out.println("请进入男子组进行决赛");
}else if("女".equals(sex)){
System.out.println("请进入女子组进行决赛");
}else{
System.out.println("性别错误请重新输入!");
}
}else {
System.out.println("成绩不合格,不能参加决赛!");
}
}
}
注意事项:
- 比较表达式无论简单还是复杂,结果必须是boolean类型;
- if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略;
- 一般来说,有左大括号就没有分号,有分号就没有左大括号;
- 三元运算符能实现的,if语句都可以实现,反之不成立;
什么时候if语句可以实现不能用三目运算符?
当if语句控制的操作是一个输出语句的时候不能,因为三元运算符是一个运算符,运算符操作完就应该有个结果而不是一个输出。
- switch语句
格式:
switch(表达式){
case 值1:语句体1;break;
case 值2:语句体2;break;
case 值3:语句体3;break;
case 值n:语句体n;break;
default:语句体n+1;break;
}
格式解释:
- 表达式取值:byte,short,int,char
- JDK5以后可以使枚举;
- JDK7以后可以是String;
- case后面跟的是要和表达式进行比较的值;
- 语句体可以是一条或者多条;
- break表示中断,结束switch语句;
- default语句表示所有情况都不匹配的时候,执行的内容。
switch和if语句的区别
- if语句适用场景:
- 针对结果是boolean类型的判断;
- 针对一个范围的判断:
- 针对几个常量的判断
- switch语句使用的场景:
- 针对几个常量值得判断
代码演示如下:
package org.org.westos.practice;
import java.util.Scanner;
public class switch01 {
public static void main(String[] args) {
//给定一个数值输出对应星期
Scanner rc=new Scanner(System.in);
int x=rc.nextInt();
switch (x){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("范围1~7,不在范围!");
}
}
}
/*6
星期六*/
注意事项:
- case后面只能是常量,不能是变量,而且多个case后面的值不能相同;
- default可以省略,但不建议,它的作用是让代码更健壮;
- break可以分情况省略,省略之后会有case穿透现象;
- default不一定要放在最后,可以放在任意位置;
- switch语句结束的条件:遇到break或者执行到末尾;
循环结构
什么是循环结构?
循环语句可以在满足循环条件的情况下,反复执行一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时需要在合适的时候把循环判断条件是修改为false,从而结束循环,否则循环将一直执行下去,形成死循环;
循环结构的分类:
- for循环
- while循环
for循环:
基本格式:
for(初始化表达式语句;判断条件语句;控制条件语句) {
循环体语句;
}
执行流程:
- 执行初始化表达式语句;
- 执行判断条件语句,看其返回值是true还是false;是ture就继续执行,是false就结束循环;
- 执行循环体语句;
- 执行控制条件语句;
- 回到第二句继续;
案例演示如下:
package day1212;
public class Xignxing {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=0;i<4;i++){
for(int k=1;k<=3-i;k++){
System.out.print(" ");}
for (int j=1;j<=2*i+1;j++){
System.out.print("*");
}
System.out.println("\t");
}
}
}
/*
*
***
*****
*******
*/
注意事项:
- 判断条件语句无论简单还是复杂结果是boolean类型。
- 循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
- :一般来说:有左大括号就没有分号,有分号就没有左大括号
while循环:
基本格式:
初始化条件语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
执行流程:
- 执行初始化条件语句;
- 执行判断条件语句,看其返回值是true还是false;如果是true,就继续执行,如果是false,就结束循环;
- 执行循环体语句;
- 执行控制条件语句;
- 回到判断条件语句继续;
do....while语句:至少执行一次循环体;
三种循环语句的区别
- do…while至少执行一次循环体;而for,while必须先判断条件是否成立,然后决定是否执行循环体语句。
- 如果你想在循环接收后继续使用控制条件的那个变量,用while循环,否则用for循环。
- 优先考虑for循环,因为变量及时的从内存中消失,可以提高内存的使用效率;
注意:System.out.println("*");和System.out.print("*");的区别;
控制跳转语句
控制语句的跳转和中断
- break中断;
- continue继续;
- return返回;
break的使用场景:
- 在选择结构的switch中使用;
- 在循环语句中使用;
作用:退出单层循环;退出多层循环
continue的使用场景:
- 在循环语句
作用:跳出一次循环执行下一次;
return的作用:退出一个方法;跳转到上层调用的方法。
结论
- break:结束单层循环;
- return:结束当前方法;
- continue:结束当前循环,执行下一次循环;