一、死循环
- 无法终止该循环,在开发中用于阻塞等待,监听结果;
- for(;😉{循环体}
- do{循环体}while(true)
- while(true){循环体}
二、for循环嵌套
package com.la;
import java.util.Scanner;
public class TwoFori {
public static void main(String[] args) {
double sum=0;
Scanner scanner = new Scanner(System.in);
for (int i = 1; i <=3; i++) {
for (int j = 1; j <=3; j++) {
System.out.println("请输入"+i+"班的第"+j+"个同学");
int i1 = scanner.nextInt();
sum+=i1;
}
System.out.println("第"+i+"班的平均分为:"+sum/3);
sum=0;
}
}
}
三、流程控制总结
3.1 顺序结构
代码从左到右、从上到下执行
3.2 分支结构
- if
- if……else
- if……else if……else
- switch ……case……default
3.3 循环结构
- for
- while
- do……while
3.4 代码
package com.la;
import java.util.Scanner;
public class Area {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
boolean flag = true;
do {
System.out.println("\t\t计算面积");
System.out.println("1.矩形\t2.三角形\t3.圆\t4.退出");
System.out.println("请选着你要操作的数字");
int i = scanner.nextInt();
switch (i) {
case 1:
System.out.println("你选着了矩形");
System.out.println("请输入矩形长");
int i1 = scanner.nextInt();
System.out.println("请输入矩形的宽");
int i2 = scanner.nextInt();
System.out.println("矩形面积为:" + i1 * i2);
break;
case 2:
System.out.println("你选着了三角形");
System.out.println("请输入三角形的宽");
int i3 = scanner.nextInt();
System.out.println("请输入三角形的高");
int i4 = scanner.nextInt();
System.out.println("三角形的面积为:" + (i3 * i4) / 2);
break;
case 3:
System.out.println("你选着了圆");
System.out.println("请输入圆的半径");
int i5 = scanner.nextInt();
System.out.println("圆的面积为:" + 3.14 * i5 * i5);
break;
case 4:
flag = false;
break;
}
} while (flag);
}
public static void test() {
boolean flag = true;
Scanner scanner = new Scanner(System.in);
while (flag) {
System.out.println("\t\t计算面积");
System.out.println("1.矩形\t2.三角形\t3.圆\t4.退出");
System.out.println("请选着你要操作的数字");
int i = scanner.nextInt();
switch (i) {
case 1:
System.out.println("你选着了矩形");
System.out.println("请输入矩形长");
int i1 = scanner.nextInt();
System.out.println("请输入矩形的宽");
int i2 = scanner.nextInt();
System.out.println("矩形面积为:" + i1 * i2);
break;
case 2:
System.out.println("你选着了三角形");
System.out.println("请输入三角形的宽");
int i3 = scanner.nextInt();
System.out.println("请输入三角形的高");
int i4 = scanner.nextInt();
System.out.println("三角形的面积为:" + (i3 * i4) / 2);
break;
case 3:
System.out.println("你选着了圆");
System.out.println("请输入圆的半径");
int i5 = scanner.nextInt();
System.out.println("圆的面积为:" + 3.14 * i5 * i5);
break;
case 4:
flag = false;
break;
}
}
}
}
四、方法
- 定义:具有特定功能的代码
- 代码
package com.la;
import java.util.Scanner;
public class IsScore {
public static void main(String[] args) {
System.out.println("请输入你的成绩:");
int i = new Scanner(System.in).nextInt();
int score = score(i);
System.out.println(score);
}
public static int score(int grade){
if (grade>=60&&grade<=100){
System.out.println("及格");
return grade;
}else {
System.out.println("不及格");
return grade;
}
}
}
-
方法重载
- 同一个类中,方法名相同,参数列表不同,且与返回值和修饰符无关
-
方法在内存运行结构
-
栈是一种先进后出的数据结构,而java虚拟机栈就是用来描述java方法执行的模型。且是线程独有的。
-
总体模型为:每个方法在执行的过程中会创建一个栈帧用于存储{局部变量表、操作数栈、动态链接、方法出口等信息}。每个方法的调用到结束都对应者一个栈帧从入栈到出栈的过程;
-
五、练习
5.1 打印右三角形
package com.la;
public class Work1 {
public static void main(String[] args) {
for (int i = 1; i <=5; i++) {
for (int j = 1; j <=5 ; j++) {
if (j>(5-i)){
System.out.print("*");
}else System.out.print(" ");
}
System.out.println();
}
}
}
5.2 打印1~5的五层
package com.la;
public class Work2 {
public static void main(String[] args) {
for (int i = 1; i < 6; i++) {
for (int j = 1; j < 6; j++) {
if (j==i){
for (int k = 0; k < 5; k++) {
System.out.print(i+"\t");
}
}
}
System.out.println();
}
}
}
5.3 公鸡5元,母鸡3元,3只小鸡1元,100元买100只,有多少购买方式
package com.la;
public class Work3 {
// int a;
// int b;
// int c;
// a*5+b*3+c/3=100;
// a+b+c=100;
// a<100/5;
// b<100/3;
// c<100;
public static void main(String[] args) {
int count=0;
for (int i = 0; i < 20; i++) {
for (int j = 0; j <33; j++) {
for (int k = 0; k < 100; k++) {
if (i+j+k==100&&i*5+j*3+k/3==100){
count++;
System.out.println("公鸡:"+i+" 母鸡:"+j+" 小鸡"+k);
System.out.println(count);
}
}
}
}
}
}
5.4 定义方法、打印0~n的正整数
package com.la;
import java.util.Scanner;
public class Work4 {
public static void main(String[] args) {
System.out.println("请输入一个整数");
int i = new Scanner(System.in).nextInt();
test(i);
}
public static void test(int n){
if (n<0){
System.out.println("输入有误");
}
for (int i = 0; i <=n ; i++) {
System.out.println(i);
}
}
}
5.5 判断成绩是否及格
package com.la;
import java.util.Scanner;
public class Work5 {
public static void main(String[] args) {
System.out.println("请输入你的成绩");
int i = new Scanner(System.in).nextInt();
String answer = test(i);
System.out.println(answer);
}
public static String test(int score){
if (score>=60) return "及格";
else return "不及格";
}
}