从键盘获取值
从键盘获取不同类型的变量:需要使用Scanner类
具体步骤:
1、导包:import java.util.Scanner;
2、Scanner的实例化:Scanner scan = new Scanner(System.in);
3、调用Scanner类的相关方法,来获取指定类型的变量:
(整形)int num = scan.nextInt();
(字符串)String name = scan.next();
(浮点型)double weight = scan.nextDouble();
(boolean型)boolean y = scan.nextBoolean();
(s.charAt(0):获取索引为0位置上的字符 )
分支语句
if - else 结构
(1) else结构是可选的(else if 或 else),执行完直接退出 if - else 结构。
(2) 针对多个条件表达式:如果多个条件表达式之间是“互斥”关系(或没有交集的关系),判断和执行语句声明无所谓顺序;如果多个条件表达式之间有交集的关系,需要根据实际情况按顺序排列;如果多个条件表达式之间有包含关系,通常将范围小的声明在范围大的之上。
(3) 可以嵌套; else配对原则为就近原则。
获取随机数 [0.0,1.0) :double value = Math.random();
判断字符串str1和str2是否相同:str1.equals("str2");
switch-case结构
1、格式
switvh(表达式){
case 常量1:
执行语句1;
//break;
case 常量2:
执行语句2;
//break;
...
default:
执行语句n;
//break;
}
2、说明
(1)根据switch表达式中的值,依次匹配各个case中的常量。匹配成功则进入相应case结构中,调用其执行语句。
(2)当调用完执行语句以后,仍然继续向下执行其它case结构中的执行语句,直到有break或末尾则停止。
(3)break,可以使用在switch-case结构中,可以跳出该结构。
(4)switch结构中的表达式类型:byte、short、char、int、枚举类型、String类型(不兼容boolean类型)
(5)case之后不能声明范围,执行语句可以嵌套if-else;若多个case执行语句相同,可以合并。
循环结构
for
1、结构
for(①;②;④){
③; }
执行过程:① --> ② --> ③ --> ④ --> ② --> ③ --> ④ -->…–> ②
while
1、结构
①
while(②){
③;
④;
}
执行过程:① --> ② --> ③ --> ④ --> ② --> ③ --> ④ -->…–> ②
do-while
1、结构
①
do{
③;
④;
}while(②);
执行过程:① --> ③ --> ④ --> ② --> ③ --> ④ --> … --> ②
嵌套循环
1、时间复杂度:两个循环执行次数的乘积。
2、优化
(1) 加入break,跳出不需要进行的循环
(2) 减少循环次数
long start = System.currentTimeMillis();
long end = System.currentTimeMillis();
waste_time = end - start
特殊关键字的使用
break
结束当前循环,默认跳出最近的一层循环(break label:结束指定标识的一层循环)
continue
结束当次循环,(continue label:跳出指定标识的一层循环)
项目一
实现一个基于文本界面的《家庭记账软件》
需求说明:(1)收支明细;(2)登记收入;(3)登记支出;(4)退出(请选择1-4)
整体框架搭建:(1) 建立循环,显示提示语;(2) 选择情况不多,可使用switch-case