- if...else...语句
- 语法:
- if...else...语法
if(判断表达式){
语句块1....
}else{
语句块2....
}
- 先执行判断表达式,返回布尔类型返回值
- 如果为true,则执行语句块1
- 如果为false,则执行语句块2
- if ... else if....语法
if(判断表达式1){
语句块1....
}else if(判断表达式2){
语句块2....
}
......
else{
语句块n....
}
练习:输入三个数,输出三个数中最大的数
练习:从控制台输入一个数num与之前定义的数n进行比较,如果num==n,提示“恭喜你,猜对了”;如果num<n提示“抱歉,猜小了”,如果num>n提示“抱歉,猜大了”。
练习:输入年份,判断该年是闰年还是平年
四年一闰,百年不闰,逢四百年再闰
- switch...case...语句
- 语法:
switch(变量){
case 值1:
语句块1...
[break;]
case 值2:
语句块2...
[break;]
......
case 值n:
语句块n...
[break;]
default :
语句块n+1...
}
- 首先变量的值是多少,根据case值来执行对应的语句块
- 如果语句块中不包含break语句,则会从该case一直往下执行
- 如果没有对应的值,则执行default当中的语句块。
- 在Java1.7之前switch后变量类型只能是byte short int char
之后加入了String类型
注意:
没有break语句
- case语句的顺序会影响最后的结果
- default语句的位置也会影响最后的结果
练习:从控制台输入数字,如果数字在1-12,输出对应的月份和天数。否则输出非法数据。使用swtich语句编写代码。
练习:一个景区根据游人的年龄收取不同价格的门票,20岁以下20元钱,20到60岁40元钱,60岁以上免费。请输入年龄,然后给出票价
- while循环
- 语法:
int i = 值; // 循环初始值
while(判断表达式){
循环体...
i++ ; // 增量表达式
}
练习:输出100以内所有偶数
练习:100以内将所有敲7中不能说的数用*来输出
所有7的倍数和数字中带7的数
练习:输出100以内所有奇数和
练习:输出n! 10! = 10*9*8*7*6*5*4*3*2*1
- do...while循环
- 语法:
do{
循环体...
}while(判断表达式);
- 与while循环的区别
do...while不管循环条件是否成立,必然执行一次循环体
while先判断循环条件是否成立,很有可能一次循环都不执行。
- for循环
- 语法:
for(循环初值表达式;循环判断表达式;增量表达式){
循环体...
}
- 三个表达式都能省略,中间的;不能省略
- 初值表达式省略,可以在循环上定义初值
- 判断表达式省略,形成无限循环
- 增量表达式省略,也会形成无限循环
练习:找寻所有的水仙花数 3位数 ,个位立方+十位立方+百位立方 == 这个数 153 = 33+53+13
作业
- 输入一个分数,判断其成绩为 优(90+)、良(80+)、中(70+)、及格(60+)还是不及格(60以下)
- 输入三个整数x,y,z,请把这三个数由小到大输出。
- 计算9!的值 [362880]
- 计算3!+5!+7!+9!的值 [368046]
- 分别输入年月日,判断该日期是这一年的第几天
- break和continue--(掌握)
break语句可以在switch.case还有循环中使用
continue可以在循环中使用
break跳出整个循环
continue跳出本次循环
return;语句可以跳出该方法(函数)
System.exit(0); 用来退出整个程序
- 数组
数组用来存多个相同类型的数据
- 定义数组
- 数据类型[] 数组名; int[] array;
- 数据类型 数组名[]; double array_d[];
- 数组赋值
- 数组定义并赋值 数据类型[] 数组名 = {值1,值2,值3....};
int[] array = {1,2,3,4,5};
- 数组定义并开辟空间 数据类型[] 数组名 = new 数据类型[空间大小];
String[] str_arr = new String[10];
- 访问数组中的元素
使用下标访问数组中的元素,下标从0开始
System.out.println(array[0]);
修改元素的值
array[2] = “哈哈”;
- 数组的属性和方法
- 属性:数组的长度(元素个数)
arr.length
- int arr2[] = arr.clone() 克隆方法,将arr里的值复制给arr2,但是arr和arr2地址是不同的
- Arrays.sort(数组); 将数组进行正序排列
- foreach循环(增强for循环)用于数组、集合的遍历
语法:
for(和数组相同的数据类型 变量名:数组名){
System.out.println(变量名)
}
因为foreach使用临时变量将数组中的值进行赋值查看,所以改变临时变量不会改变数组原值,foreach只能查看不能修改
- 顺序查找(掌握)
定义一个int型数组,存储十个值。从控制台输入一个数字,在数组中进行查找,如果找到,输出第一次找到该输入值的下标,如果没有找到,输出-1;
- 二分查找[折半查找]算法(掌握)
要求:数组必须是有序的,要求每一个元素的值比前面的大。
作业
- 打印如下图形
*
***
*****
***
*
- 编写程序,输入一个字符,判断它是否为小写字母,如果是,将它转换成大写字母,否则,不转换。
- 编写程序,从键盘输入一个 0~99999 之间的任意数,判断输入的数是几位数?