龙空技术网

了解分支语句的使用以及形参和实参的区别

Java学习日志 112

前言:

现在咱们对“java中形参和实参”大概比较看重,同学们都想要了解一些“java中形参和实参”的相关内容。那么小编同时在网络上搜集了一些对于“java中形参和实参””的相关内容,希望朋友们能喜欢,姐妹们快快来了解一下吧!

分支语句

1、if分支语句

1.1、if单分支语句

语法: if(逻辑关系表达式){ 代码段1 }

当逻辑关系表达式的值为true时,执行对应{}种的代码段,为false不执行

//if分支语句public class Demo01 { public static void main(String[] args) { /* * 1.单分支语句 语法: if(逻辑关系表达式){ 代码段1 } *  * 当逻辑关系表达式的值为true时,执行对应{}种的代码段,为false不执行 *  *  * 注:if后面的{}可以省略,此时此条if语句和挨的最近的那条代码段匹配 */​ if (10 > 9) { System.out.println("10>9");

1.2、if双分支语句

语法: if(逻辑关系表达式){ 代码段1 }else{ 代码段2 }

/* * if双分支: if(逻辑关系表达式){ 代码段1 }else{ 代码段2 } * 如果逻辑关系表达式的值为true,则执行代码段1;如果为false,则执行代码段2; */ int i = 10; if (i % 2 == 0) { System.out.println(i + "是偶数"); } else { System.out.println(i + "是奇数"); }​

1.3、if多分支语句

语法:if多分支語句: if(逻辑表达式1){ 代码段1 }else if(逻辑表达式2){ 代码段2 }else if{ 代码段3}

​ /* * if多分支語句: if(逻辑表达式1){ 代码段1 }else if(逻辑表达式2){ 代码段2 }else if{ 代码段3 * }else{ 代码段4 } *  * if else if 中每一个分支都是互斥的,只有一个逻辑表达式的值为true,在该条分支执行,其余的都不执行 */ Scanner sc = new Scanner(System.in);​ System.out.println("請輸入學生的分數"); // 调用nextInt()方法,返回一个int值作为分数 int score = sc.nextInt();​ if (90 <= score && score <= 100) { System.out.println("A"); } else if (80 <= score && score < 90) { System.out.println("B"); } else if (70 <= score && score < 80) { System.out.println("C"); } else if (60 <= score && score < 70) { System.out.println("D"); } else { System.out.println("不及格"); }​

1.4、if嵌套语句

语法:if(条件1){ if(条件2){ if(条件3){  }else{  }else{  }//闰年的判断:闰年的规律:4的倍数,但不是100倍数,或者400的倍数 Scanner sc = new Scanner(System.in); System.out.println("请输入你要的年份"); int year = sc.nextInt(); if (year % 4 != 0) { System.out.println("这年不是闰年"); } else { if (year % 100 != 0) { System.out.println("这年是闰年"); } else { if (year % 400 == 0) { System.out.println("这年是闰年"); } else { System.out.println("这年不是闰年"); } } }​ } }}​

2、Switch语句

数值表达式的结果值,会和case后面的数值意义匹配,匹配到哪个case语句,则执行相对应的代码段

在jdk1.7以前,数值表达式可以是字符串

注意1:数值表达式中的值的数据类型要和case后面的数据类型一致

注意2:在使用switch语句的时候要注意case渗透问题,即当case语句后面没用跟上break关键字的时候,如果执行了此case语句,那么当此case语句后面的代码执行完了以后,代码它会继续往下执行,执行下一个case语句,直到遇到break为止。

语法: Switch(数值表达式){ case 值1: 代码段1 break; case 值2: 代码段2 break; case 值3: 代码段3 break; default: 代码段4 }示例1:Scanner sc = new Scanner(System.in);System.out.println("请输入你要的分数");int score = sc.nextInt();Switch(score / 10){ case 9: System.out.println("A"); break; case 8: System.out.println("B"); break; case 7: System.out.println("C"); break; case 6: System.out.println("D"); break; default: System.out.println("不及格");}示例2:// 输入月份,判断是哪一个季节 System.out.println("请输入一个月份"); int month = sc.nextInt(); switch (month) { case 1: case 2: case 3: System.out.println("春天"); break; case 4: case 5: case 6: System.out.println("夏天"); break; case 7: case 8: case 9: System.out.println("秋天"); break; case 10: case 11: case 12: System.out.println("冬天"); break;

3、for循环语句

注意:在使用for循环的时候要先对其值进行初始化

语法:for(1.初始化计数; 2.循环条件判断语句; 3.再求值参数){ 循环体 }示例://打印10个helloWorldfor(int i = 1; i <= 100; i++){ System.out.println("helloWorld"); }示例2://将 123456789数字倒置 int j = 123456789; int temp = j % 10; int LastNum = 0; //用来存放取出来的最后一个数字 int num = 0; for(;j>0;j=j/10){ LastNum = j % 10; num = num * 10 + LastNum;  } System.out.println("num:"+num);

4、while循环

当我们知道循环次数的时候使用for循环,当我们不知道循环次数的时候使用while循环

语法: while(条件判断语句){ 循环体 }即当满足条件判断语句时才执行while循环语句/* 系统随机产生1~100之间的随机数 用户从控制台输入数字进行猜测,如果猜大了,给与提示猜大了;如果猜小了,给 与提示猜小了 猜对推出游戏*/ Scanner sc = new Scanner(System.in);​ // 使用random随机数工具类来帮助产生随机数 Random ra = new Random(); // ra.nextInt(100)产生0-99之间的随机数 int randomNum = ra.nextInt(100) + 1; System.out.println("游戏开始,请输入一个数字"); int inputNum = sc.nextInt();  while (inputNum != randomNum) { if (inputNum > randomNum) { System.out.println("猜大了,请继续输入"); } else if (inputNum < randomNum) { System.out.println("猜小了,请继续输入"); } inputNum = sc.nextInt(); } System.out.println("猜对了,游戏结束"); }   for (; inputNum != randomNum;) { if (inputNum > randomNum) { System.out.println("猜大了,请继续输入"); } else if (inputNum < randomNum) { System.out.println("猜小了,请继续输入"); } inputNum = sc.nextInt(); } System.out.println("猜对了,游戏结束");  //while循环也可以替代for循环

5、Do while 循环语句

无论给出的条件是否满足do while语句的条件,它都会执行一次,

特点:无论是否满足循环条件,循环体至少被执行一次

语法: do{ 循环体 }while(条件判断语句)示例:int i = 19; do{ System.out.println("hello"); }while(i > 20); }此时我们给到i的值为19,它不满足while中的条件判断语句(i>20),但是由于do while循环语句的特点,它是先执行循环,因此。它会输出一次hello而后对该条件进行判断,不满足给出的条件语句,则停止循环。输出一次hello

6、循环结束的关键字

1、break:

结束当前整个循环,即使还有剩余的循环次数,也强制结束

int i = 0; while(i<5){ if(i == 3){ break; } System.out.println("i:"+i); i++; }在此处它表示当i = 3 的时候 结束当前整个循环,因此它的输出结果为 0 1 2

2、continue

表示忽略当前这一次循环(即忽略当前这一次循环体中的内容),如果还有循环次数,继续执行。

 for(int i = 0; i < 5; i++){ if(i == 3){ // break; continue; } System.out.println("i:"+i); }此处它表示跳过 i = 3 的这次循环,因此它的输出结果为 0 1 2 4 

7、Java中的方法

1、什么是方法?

方法:是指对程序中的某个代码段进行封装,方便以后调用。一个方法尽量只执行一个功能。

2、如何定义方法

定义方法的语法:修饰词(权限修饰词,类型修饰词..) + void/返回数据类型 + 方法名(参数列表){  方法体(具体的方法逻辑); }

8、return和void

1、什么是return?

return关键字,一般用于方法体的末尾,在表示结束某个方法,在return后面不允许在出现代码

2、什么是void

void它紧跟方法名,表示此方法没有返回值

3、什么是返回数据类型

返回数据类型:返回数据类型它和void一样都是紧跟方法名。表示此方法会有对应类型的数据返回,并且要通过return关键字将该对应类型的数据返回,否则编译报错示例:import java.util.Scanner;​public class Demo01 {​ //此方法用于找零钱操作 public static double getRish(double price,int num,double money){ double rush = money - price * num; return rush; }​ //此方法用于实现打印小票的操作 public static void print(double price,int num,double money){ System.out.println("商品名:xxx" + "商品单价:" + price + "商品数量:" + num + "商品总价:" + (num * price)); }​ //显示找回的零钱 public static void showRish(double rush){ System.out.println("应找零钱:" + rush); } public static void main(String[] args) { //在此处模拟一个收银台操作,从控制台输入用户需要的数量,商品价格,和用户所给的钱 //计算机做出找零操作并显示 Scanner sc = new Scanner(System.in); System.out.println("请输入商品单价"); double price = sc.nextDouble(); System.out.println("请输入商品数量"); int num = sc.nextInt(); System.out.println("请输入您给收银台的钱"); double money = sc.nextDouble();​ //计算找零操作 double rush = getRish(price,num,money); showRish(rush); }}

9、嵌套for循环

嵌套for循环值指的是在一个for循环中在写一个for循环,用图像思维表示的话:1层for循环可以看作是一条直线2层for循环可以看作是一个平面3层for循环可以看作是一个立体图形;​用表格思维表示的话:1层for循环可以看作是控制的行2层for循环可以看作外层for循环控制的是行,内层for循环控制的是列​注意:嵌套for种,外层for循环外层循环一次,内层for循环要执行一遍。示例:public class Demo02 { public static void main(String[] args) { int i,j; for (i = 0;i < 5;i++){ System.out.println("i = " + i); for (j = 0;j < 5;j++){ System.out.println("j =" + j); } } }}​他的输出结果为 :第一次循环结果:i=0 j=0,j=1,j=2,j=3,j=4第二次循环结果:i=1 j=0,j=1,j=2,j=3,j=4第三次循环结果:i=2 j=0,j=1,j=2,j=3,j=4第四次循环结果:i=3 j=0,j=1,j=2,j=3,j=4第五次循环结果:i=4 j=0,j=1,j=2,j=3,j=4例题:通过嵌套for循环实现以下效果*****************************​for (int i = 0;i < 5; i++){ for (int j = 0; j < (5 - i); j++){ System.out.print("*"); } System.out.println(); } for (int i = 1;i < 5;i++){ for (int j = 0; j <= i ; j++){ System.out.print("*"); } System.out.println(); }例题2:通过嵌套for循环实现 用循环输出等腰三角形的效果(如下图):最好能动态命令行的数字输出 * 1  *** 3  ***** 5 ******* 7 ********* 9 for(int i = 1;i<5;i++){ for(int j = 0;j<(5-i);j++){ System.out.print(" "); } for(int k= 1;k<=(2*i-1);k++){ System.out.print("*"); } System.out.println(); } }

10、形参和实参的区别

1、什么是形式参数:

形式参数指的是函数调用时,用来接收实际参数的值,称为形式参数

形参:全称为形式参数,由于它不是实际存在的参数,所以它又称之为虚拟变量,是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时所传进来的参数。调用该函数时,实参将值赋给形参,因此必须要注意实参的个数,类型要于形参一一对应。并且实参要有确定的值。

2、什么是实际参数

实际参数是指在调用是传递给函数的值,它可以是变量,常量,表达式,函数等,无论实际参数是什么变量的值,在进行函数调用的时候,都必须要有一个确定值。以便于把这些值传给形式参数,因此应该先对实际参数预先赋值,使实际参数拥有一个确定的值。

3、形式参数和实际参数的区别

形式参数通常出现在函数中定义,即写在方法名后的括号中。在整个函数中可以使用,离开这个函数则不能使用。

实际参数通常出现在主函数(main方法)中,当实际参数进入到被调函数中,实际参数变量也不能被使用。

实际参数和形式参数无论是在类型上,数量上还是顺序上都要严格一致,否则会出现"类型不匹配的错误"。

形式参数只要在被调用的时候才会分配内存空间,在调用结束后,立即释放内存,因此形式参数值只在函数内部有效,当函数调用结束,返回主函数后,该形式参数变量则不能在被使用

实际参数可以是常量,变量,表达式,函数等,但是无论实际参数是什么样的值,在进行函数调用的时候,实际参数都必须要有一个确定的值。以便于把这些值传给形式参数,因此应先对实际参数进行预先赋值。使实际参数拥有一个确定的值。

例子:形式参数:public void method(int a,int b){ 方法体; } 这里的a和b就是形式参数,即形参是一个没有赋值的变量,通常是在函数定义时使用的。​实际参数当进行函数调用的时候add(1,2) 这里的1和2就是实际参数,即是一个有赋值的变量。通常是在函数调用时使用。

标签: #java中形参和实参