语句
1, 语句的分类
-
顺序语句 不改变语句的执行,按照从上往下,从左往右
2.分支语句 根据条件分情况执行,只能执行一条。 if-else ; switch
3.循环语句 根据条件语句反复执行。 for ; while ; do-while
4.跳出循环 continue ; break ; return ; System.exit(0);
2, 分支语句
2.1 if-else 结构
语法1:(1条路)
if(布尔类型条件) { 满足条件执行的语句; }
控制台的输入和输出:
输出:
System.out.println();
输入(Scanner):
//1 创建一个扫描工具 Scanner 变量名 = new Scanner ( System.in ); //2 导入Scanner所在的包 导包快捷键:ctrl + shit + o //3 通过控制台进行动态接收 //4 结尾关闭Scanner。Scanner在控制台上输入,属于一个输入流,需要在在最后关闭。 变量名.close();//关闭Scanner流 int a = 变量名.nextInt(); double d = 变量名.nextDouble(); String name = 变量名.nextDouble(); }
示例代码:
System.out.println("欢迎注册信息,请输入您的信息:"); Scanner s = new Scanner(System.in); //提示语 System.out.println("请输入您的姓名:"); String name = s.next(); System.out.println("请输入您的年龄:"); int age = s.nextInt(); System.out.println("请输入您的身高:"); double height = s.nextDouble(); System.out.println("欢迎您,您的信息如下"); System.out.println(name + "\t" + age + "\t" + height);
结合if和接收:
//控制台输入 Scanner sc = new Scanner(System.in); System.out.println("请输入一个数字:"); int a = sc.nextInt(); // 判断是否是偶数 if (a % 2 == 0) { System.out.println(a + "是偶数"); }
语法2:(二选1)
if(布尔类型条件) { 满足条件执行的语句; } else{ 不满足条件执行的语句; }
注意: else 不加条件
if(age >= 18) { System.out.println("您已成年"); }else { System.out.println("您还需" + (18 - age) + "成年"); }
判断闰年:
Scanner sc = new Scanner(System.in); System.out.println("请输入年份:"); int year = sc.nextInt(); if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { System.out.println(year + "是闰年"); }else { System.out.println("不是闰年"); }
控制台接收整数 三个变量,输出他们的最大值(if-else):
public class TestIf_4 { public static void main(String[] args) { int max = 0; if(a > b) { max = a; }else { max = b; } if(c > max) { max = c; } System.out.println("最大值为:" + max); } }
语法3:(多选1)
if(条件1) { 满足1件执行的语句; } else if(条件2){ 满足2件执行的语句; } else if(条件3){ 满足3件执行的语句; } ... else{ 都不满足条件执行的语句; }
获得最大值:
Scanner sc = new Scanner(System.in); System.out.println("请输入三个变量:"); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); int max = 0; if(a >= b && a >= c) { max = a; }else if(b >= a && b >= c) { max = b; }else { max = c; } System.out.println("最大值:" + max);
难题总结:代替法
需求:a b c 三个数的大小排序
System.out.println("input three numbers with blank"); Scanner s = new Scanner( System.in ); double a = s.nextDouble(), b = s.nextDouble(), c = s.nextDouble(), t; if( a > b ) { t = a; a = b; b = t; } if(a > c ) { t = a; a = c; c = t; } if( b > c ) { t = b; b = c; c = t; } System.out.println(a + "<" + b + "<" + c);
2.2 switch 结构
语法:
switch(表达式/变量){ case 值1 : {语句1 ; break;} case 值2 : {语句2 ; } case 值3 : {语句3 ; break;} default:{ 都不匹配执行的语句; } }
小结:
-
switch()里的值类型要求: byte /short / int / char / String(jdk7+)/ 枚举(jdk5+),不能使用条件
-
case后面的值代表和switch里变量匹配的,值要求类型: 和switch()里类型一致,值不能相同
-
匹配哪个值,执行语句;break表示跳出整个switch,可以不加,如果没break,依次向下执行,直到遇到break;
-
default 没有case的匹配,直接执行语句