键盘录入
1、键盘录入:在程序运行的过程中,可以让用户录入一些数据,存储在内存的变量中,在后续的程序运行过程中,可以使用这些数据。
2、步骤:
第一步:导包,在类声明的上面,import java.util.Scanner;
第二步:创建键盘录入对象,Scanner sc = new Scanner(System.in);
第三步:调用sc对象的nextInt方法,获取键盘录入的整数
int x = sc.nextInt();
第四步:使用x后续处理
import java.util.Scanner; class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in);//System.in获取 System.out.println("Hello World!"); int a =sc.nextInt();//nextInt()可以获取输入的整形类型 String s = sc.next();//next()可以获取输入的字符串类型 //nextChar()、nextBoolean()等等,详情可以查看在线api文档 //http://tool.oschina.net/apidocs/apidoc?api=jdk-zh } }
分支结构
1、if语句
class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("万岁爷,时辰不早了,该歇息了"); int x = sc.nextInt(); if(x==1){ System.out.println("王皇后准备!"); }else if(x==2){ System.out.println("李贵妃准备!"); }else{ System.out.println("小李子"); } } }
2、switch语句
//注意,在switch语句中,如果case后的语句没有break,则有可能发生case击穿现象 import java.util.Scanner; class Homework7 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入年:"); int year = sc.nextInt(); System.out.println("请输入月:"); int month = sc.nextInt(); System.out.println("请输入日:"); int day = sc.nextInt(); switch (month) { case 11: day +=31; case 10: day +=30; case 9: day +=31; case 8: day +=31; case 7: day +=30; case 6: day +=31; case 5: day +=30; case 4: day +=31; case 3: if (year%400==0||(year%4==0&&year%100!=0)) { day +=29; }else{ day +=28; } case 2: day +=31; case 1: break; default: System.out.println("您输入的月份有误!"); } System.out.println(year+"年"+month+"月"+day+"日是"+year+"年的第"+day+"天20"); } }
注意:
1、Default语句:可以写也可以不写。如果不写,就有可能一个语句都执行不到。建议把default语句加上。
2、Default语句可以写在任意位置,无论写在什么位置,都是最后去匹配,建议把default语句写在最后。
3、Switch语句结束的条件:碰到了break语句;碰到了右大括号。
3.if语句和switch语句的区别
相同点:if语句和switch语句都可以表达分支结构
不同点:
1、if语句格式相对灵活,更加强大,switch语句相对弱小。所有的switch语句都可以被if语句替代。
2、if语句更多的是做一些连续性的判断,而switch语句更多的是做一些离散性的匹配
3、if语句每次都需要获取表达式的值,而switch只获取一次表达式的值,所以相对switch的效率高一些。