4-java学习-循环语句、控制跳转语句、方法-案例代码
一、for循环语句
1.用for循环语句在控制台输出10次"北冥有鱼"
public class MyTest {
public static void main(String[] args) {
// 1. int i=0; 循环的起始值 只执行一次
// 2. i<10 循环是否继续执行的条件 i<10 是true 循环执行 是 false 循环结束
// 3. {System.out.println("我爱你们");} {} 大括号里面的代码就是循环体,需要重复执行的代码,就放到循环体里面
//4. i++ 控制循环的语句 每循环一次 i自增1
for(int i=0;i<10;i++){
System.out.println("北冥有鱼");
}
}
}
2.用for循环语句在控制台输出数据1 - 10、10 - 1
public class MyTest2 {
public static void main(String[] args) {
//请在控制台输出数据1 - 10
for(int i=1;i<=10;i++){
System.out.println(i);
}
System.out.println("-----------------------------");
//请在控制台输出数据10 - 1
for(int i=10;i>=1;i--){
System.out.println(i);
}
}
}
3.用for循环语句求出1 - 10 之间数据之和
public class MyTest3 {
public static void main(String[] args) {
int sum = 0; //定义一个变量,用来接收结果
for (int i = 1; i <= 10; i++) {
sum = sum + i;
}
System.out.println("和是" + sum);
}
}
4.用for循环语句求1—100之间的奇数和 和 偶数和
public class MyTest4 {
public static void main(String[] args) {
int sum=0; //定义一个变量来接收最后的结果
int ou=0;
int ji=0;
for (int i=1;i<=100;i++){
sum=sum+i;
if(i%2==0){//是偶数
ou=ou+i;
}else{
ji=ji+i;
}
}
System.out.println("和是"+sum);
System.out.println("奇数和是" + ji);
System.out.println("偶数和是" + ou);
}
}
5.用for循环语句在控制台输出所有的”水仙花数”(水仙花数是指一个三位数,其各位数字的立方和等于该数本身。)
public class MyTest {
public static void main(String[] args) {
//定义一个统计变量
int count=0;
for(int i=100;i<=999;i++){
int ge=i/1%10;
int shi=i/10%10;
int bai=i/100%10;
int flowerNum=ge*ge*ge+shi*shi*shi+bai*bai*bai;
if(i==flowerNum){
System.out.println("水仙花数是"+i);
count++;
}
}
System.out.println("水仙花数有"+count+"个");
}
}
6.用for循环语句输出一个4行5列的星星( *)图案
public class MyTest {
public static void main(String[] args) {
/*
如图:
*****
*****
*****
*****
*/
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++) {
System.out.print("*"); //打印不换行
}
System.out.println();//只是为了换行
}
//两层循环的嵌套特点:1.外层循环控制的是行数 2.内层循环控制列数
}
}
7.用for循环语句输出三角形状
public class MyTest2 {
public static void main(String[] args) {
/* 需求:请输出下列的形状
*
**
***
****
******/
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
8.用for循环语句打印九九乘法表
public class MyTest3 {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <=i; j++) {
System.out.print(j+"*"+i+"="+(j * i)+"\t");
// \t 转义字符 空一格 table位
}
System.out.print("\n"); // \n 转义字符 \n 也可换行
}
}
}
二、while循环语句
1.用while循环语句在控制台输出数据1 - 10、10 - 1
public class MyTest3 {
public static void main(String[] args) {
//while
//输出1---10
int i = 1;
while (i <= 10) {
System.out.println(i);
i++;
}
System.out.println("-------------------");
int j = 10;
while (j >= 1) {
System.out.println(j);
j--;
}
}
}
2.用while循环语句求1—100之间的奇数和 和 偶数和
public class MyTest4 {
public static void main(String[] args) {
int ou = 0;
int ji = 0;
int i = 1;
while (i <= 100) {
if (i % 2 == 1) {
ji += i;
} else {
ou += i;
}
i++;
}
System.out.println("奇数和"+ji);
System.out.println("偶数和" + ji);
}
}
3.用while循环语句在控制台输出所有的”水仙花数”(水仙花数是指一个三位数,其各位数字的立方和等于该数本身。)
public class MyTest5 {
public static void main(String[] args) {
int i=100;
int count=0;
while (i<1000){
int ge = i / 1 % 10;
int shi = i / 10 % 10;
int bai = i / 100 % 10;
int flowerNum = ge * ge * ge + shi * shi * shi + bai * bai * bai;
if (i == flowerNum) {
System.out.println("水仙花数是" + i);
count++;
}
i++;
}
System.out.println("水仙花数有" + count + "个");
}
}
三、do…while循环语句
1.用do…while循环语句在控制台输出10次"北冥有鱼"
public class MyTest {
public static void main(String[] args) {
//do{循环体} while(条件)
//先执行do里面的代码一次,然后去判断条件是否成立,如果成立就继续循环,如果不成立,循环结束
int i = 1;
do {
System.out.println("北冥有鱼");
i++;
} while (i < 10);
// 你知道循环次数一般选for
// 你不知道循环次数选while循环,但是你要知道循环的结束条件
}
}
四、控制跳转语句
1. break:用在switch语句或循环语句中,离开这个场景没有意义
用在用在switch语句,用来结束switch语句,用在循环语句是结束循环的
public class MyTest {
public static void main(String[] args) {
for (int i = 0; i <10; i++) {
System.out.println("北冥有鱼");
if(i==4){
break; //结束这个循环语句
}
}
System.out.println("-------------------------------");
int j=1;
while (true){
if(j>10){
break;
}
System.out.println("11");
j++;
}
System.out.println("22");
}
}
运行结果:
2. continue:用在循环语句中,用来跳出一次循环,继续下次循环 用在循环场景中,离开循环场景没有意义
public class MyTest2 {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
if(i==5){
continue;
}
System.out.println(i);
}
System.out.println("------------------------");
for (int i = 1; i <= 10; i++) {
if (i%2==1) {
continue;
}
System.out.println(i);
}
}
}
运行结果:
1
2
3
4
6
7
8
9
10
------------------------
2
4
6
8
10
3. break 加在哪层循环,那么结束的就是哪层循环,如果有多层循环嵌套,我们可以给循环加个标记,然后可以根据标去结束某个循环
public class MyTest3 {
public static void main(String[] args) {
wc:for (int i = 0; i < 5; i++) {
nc:for (int j = 0; j < 5; j++) {
if(j==2){
break wc; //根据标记去结束哪层循环
}
System.out.print("*");
}
System.out.println();
}
}
}
4.在控制台输出2次:“北冥有鱼“
public class MyTest4 {
public static void main(String[] args) {
for (int x = 1; x <= 10; x++) {
if (x % 3 == 0) {
break;
}
System.out.println("北冥有鱼");
}
}
}
5.在控制台输出7次:“北冥有鱼“
public class MyTest4 {
public static void main(String[] args) {
for (int x = 1; x <= 10; x++) {
if (x % 3 == 0) {
continue;
}
System.out.println("北冥有鱼");
}
}
}
6.在控制台输出13次:“北冥有鱼“
public class MyTest4 {
public static void main(String[] args) {
for (int x = 1; x <= 10; x++) {
if (x % 3 == 0) {
}
System.out.println("北冥有鱼");
continue;
}
}
}
五、方法
1.方法:对一段功能代码的封装,以实现多次调用,提高代码的复用性
方法定义的语法:
1.方法定义在类中
2.方法跟方法是平级关系,不能嵌套定义
3.方法的语法:权限修饰符 状态修饰符 返回值类型 方法名(参数类型 参数名){ 方法体 }
4.方法不调用不执行
public class MyTest {
//主方法 是程序的入口。JVM来调用的
public static void main(String[] args) {
System.out.println("主方法调用了");
//main方法由JVM 调用,我们可以在main方法中,调用我们自己定义的方法
//通过方法名 调用方法执行
sendBullet();
sendBullet();
sendBullet();
sendBullet();
sendBullet();
sendBullet();
sendBullet();
}
public static void sendBullet(){
//发射子弹的功能
System.out.println("发射子弹");
}
}
2.调用有参数的方法时,必须对应形参的类型和个数一一传入与形参类型对应的参数,那么传入的参数,我们叫做实际参数,简称实参,这个方法如果有返回值,我们可以接收这个返回值,方法返回什么类型,你就用什么类型收
public class MyTest2 {
public static void main(String[] args) {
//调用我们自己的方法
add();
int result= add2();
System.out.println(result);
System.out.println("===================");
//调用有参数的方法
int sum2=add3(5,9);
System.out.println(sum2);
int sum3=add3(50,50);
System.out.println(sum3);
System.out.println("====================");
double sum4= add3(2,3.4,20);
System.out.println(sum4);
return;
}
//无参数,无返回值
//void 表示无明确类型的返回值
public static void add(){
int num1=10;
int num2=20;
int sum=num1+num2;
System.out.println(sum);
return; //结束方法,方法上是void 那么return可以省略不写
}
//无参有返回值 一旦一个方法明确返回值类型。就必须由return 关键字 带回一个与返回值类型一致的结果
public static int add2(){
int num1 = 10;
int num2 = 20;
int sum = num1 + num2;
return sum; //return 结束方法,并返回结果
}
//有参有返回值的方法
public static int add3(int a,int b){
int sum=a+b;
return sum;
}
//方法括号中定义的参数,叫做形式参数,简称形参 多个形参你用逗号隔开
public static double add3(double a, double b,int c) {
double sum=a+b+c;
return sum;
}
public static void add4(double a, double b, int c) {
double sum = a + b + c;
return;
}
}
3.调用 一个方法,求两个数的最大值
定义方法时得明确两个东西:
1.方法要不要参数以及参数的类型和个数,
2.方法要不要返回值。
public class MyTest3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个整数");
//alt+Enter 万能神键
int a = scanner.nextInt();
System.out.println("请输入第二个整数");
int b = scanner.nextInt();
int max= getMax(a,b);
System.out.println("最大值是"+max);
}
public static int getMax(int num1,int num2){
int max=0;
if(num1>=num2){
max=num1;
}else{
max=num2;
}
return max;
}
}
4.调用 一个方法,判断两个数是否相等
public class MyTest4 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个整数");
int a = scanner.nextInt();
System.out.println("请输入第二个整数");
int b = scanner.nextInt();
//返回值 boolean
boolean equals = isEquals(a, b);
if(equals){
System.out.println("相等");
}else{
System.out.println("不相等");
}
}
public static boolean isEquals(int a,int b){
// boolean flag=a==b?true:false;
return a==b;
}
}
5.调用 一个方法,求两个数之和
public class MyTest5 {
public static void main(String[] args) {
//这个方法由返回值,就可以输出调用
System.out.println(add(30,60));
}
public static int add(int a,int b){
return a+b;
}
}
6.调用 一个方法,打印星型,行数和列数让用户输入
public class MyTest6 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入行数");
int hs = scanner.nextInt();
System.out.println("请输入列数");
int ls = scanner.nextInt();
//定义方法:参数 参数类型 几个参数 返回值 返回类型
//调用方法
showStar(hs,ls);
}
public static void showStar(int a,int b){
for (int i = 1; i <= a; i++) {
for (int j = 1; j <= b; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
7.方法重载:允许一个类中,存在多个同名方法,只要他们的形参个数或形参类型不同即可,注意不拿返回值类型来区分
public class MyTest {
public static void main(String[] args) {
double sum1 = add(1, 2.0);
int sum2 = add(1,2, 3);
int sum3 = add(1, 2, 3, 4);
System.out.println(sum1);
System.out.println(sum2);
System.out.println(sum3);
}
public static int add(int a, int b) {
System.out.println("两个int调用了");
return a + b;
}
public static double add(int a, double b) {
System.out.println("一个int调用了,一个double调用了");
return a + b;
}
public static int add(int a, int b,int c) {
return a + b+c;
}
public static int add(int a, int b, int c,int d) {
return a + b + c+d;
}
}