for while循环
循环的三要素:
1、循环条件的初始化
2、循环条件的控制
3、循环条件的改变
while、for循环主要是两类题目:
1、累加思想(1+2+3+... + 100)
@Test
public void test3() {
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum = sum + i;
}
System.out.println(sum);
}
2、统计思想,数一下符合条件的有多少个(计算1-100以内7的倍数的个数)
// 练习 统计100以内7的倍数的个数
@Test
public void test4() {
int count = 0;
for (int i = 1; i <= 100; i++) {
if (i % 7 == 0) {
System.out.println(i);
count++;
}
}
System.out.println("个数:" + count);
}
双重for循环:
外层循环控制行数,数一下有几行就能确定外层循环。
内层循环控制列数,这一行打印多少个,到底要打印多少个要找出和当前行之间的一个关系。
案例
打印正三角和倒三角
@Test
public void test5(){
// 正三角
System.out.println("正三角");
for(int i = 1;i <= 6;i++){
for(int j = 1;j <= 6-i;j++){
System.out.print(' ');
}
for(int j= 1;j <= 2 * i - 1;j++){
System.out.print('*');
}
System.out.println();
}
//倒三角
System.out.println("倒三角");
for(int i = 6;i >= 1;i--){
for(int j = 6 - i;j >= 1;j--){
System.out.print(' ');
}
for(int j= 2*i-1;j >= 1;j--){
System.out.print('*');
}
System.out.println();
}
}
switch...case
可以接受的值(int byte 整数类型,char,String)
switch(2) {
case 1:
.....
break;
case 2:
....
break;
.....
default:
.....
break;
}
案例:
// 输入月份、年份判断天数:
// 1、3、5、7、8、10、12 -------- 31天
// 4、6 、9、11--------------------30天
// 2----------------------------------28/29天
@Test
public void test13(){
Scanner sc = new Scanner(System.in);
// System.out.println("请输入年份:");
// int year = sc.nextInt();
System.out.println("请输入月份:");
int month = sc.nextInt();
//ctrl+alt+l 格式规范代码
switch(month){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
System.out.println("31天");
break;
case 2:
System.out.println("请输入年份:");
int year = sc.nextInt();
if((year % 4 == 0 && year % 100 != 0) || year % 400 ==0){
System.out.println("29天");
}else{
System.out.println("28天");
}
break;
case 4: case 6: case 9: case 11:
System.out.println("30天");
break;
default:
System.out.println("月份不存在!");
break;
}
}
案例:
// >=90 <=100 优秀
// >=80 <90 良好
// >=70 <80 一般
// >=60 <70 及格
// <60 不及格
@Test
public void test14(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = sc.nextInt();
if(score < 0 || score > 100){
System.out.println("非法数据");
return;
}
int rank = score / 10;
//ctrl+alt+l 格式规范代码
switch(rank){
case 0: case 1: case 2: case 3: case 4: case 5:
System.out.println("不及格");
break;
case 6:
System.out.println("及格");
break;
case 7:
System.out.println("一般");
break;
case 8:
System.out.println("良好");
break;
case 9:case 10:
System.out.println("优秀");
break;
}
}