一.&和&&的区别
当一个&表达式在求值的时候,两个操作数都会被求值,而&&更像是一个操作符的快捷方式。当一个&&表达式求值的时候,先计算第一个操作数,如果第一个操作数返回true,才会继续计算第二个操作数。如果第一个操作数的取值为false,那么第二个操作数就不会被求值。
二.练习题回顾
1.例题1,输入身高体重,计算BMI指数。
package Practice;
import java.util.Scanner;
public class Practice_01 {
public static void main(String[] args) {
System.out.print("请输入您的身高(单位米):");
double height = new Scanner(System.in).nextDouble();
System.out.print("请输入您的体重(单位千克):");
double weight = new Scanner(System.in).nextDouble();
double bmi = weight/(height*height);
System.out.print("您的BMI指数为:" + bmi);
System.out.println();
if(bmi<18.5)
{
System.out.println("体重过轻");
}
else if(bmi>=18.5 && bmi <23.9)
{
System.out.println("体重正常");
}
else if(bmi>=23.9 && bmi <27.9)
{
System.out.println("体重超重");
}
else if(bmi>=27.9)
{
System.out.println("体重严重超标");
}
else
{
System.out.println("有误");
}
}
}
2.例题2,计算0~100中奇数的个数。
package Practice;
//求0~100中,奇数的个数。
public class Practice_02 {
public static void main(String[] args) {
int count = 0;
for(int i=0;i<100;i++)
{
if(i%2!=0)
{
++count;
}
}
System.out.println("1~100中,奇数的个数为:"+ count);
}
}
3.例题3,计算0~100中的偶数之和。
package Practice;
//求-~100中,偶数之和。
public class Practice_03 {
public static void main(String[] args) {
int sum = 0;
for(int i=0;i<100;i++)
{
if(i%2==0)
{
sum = sum + i;
}
}
System.out.println("1~100中,偶数和为:" + sum);
}
}
三.while循环
1.原理:先判断,再执行。
2.形式:while(执行条件){代码…}
3.例题1,猜数字简单案例。
package Practice;
//产生一个随机数,猜数字。
import java.util.Random;
import java.util.Scanner;
public class Practice_04 {
public static void main(String[] args) {
System.out.println("猜1~1000中的随机数!");
//生成随机数的固定模式,产生1000以内的随机数,默认从0开始。
int random = new Random().nextInt(1000);
System.out.println(random);
while(true)
{
System.out.print("请输入你心仪的数字:");
int number = new Scanner(System.in).nextInt();
if(number<random)
{
System.out.println("输入数字过小!");
}
else if(number>random)
{
System.out.println("输入数字过大!");
}
else
{
System.out.println("答对了!");
break;//让循环结束。
}
}
}
}
四.do-while循环
1.原理:先执行,后判断。
2.形式:do{循环体}while(判断条件);
3.do-while简单案例。
package Practice;
import java.util.Random;
import java.util.Scanner;
public class Practice_05 {
public static void main(String[] args) {
System.out.println("猜1~1000中的随机数!");
//生成随机数的固定模式,产生1000以内的随机数,默认从0开始。
int random = new Random().nextInt(1000);
System.out.println(random);
do
{
System.out.print("请输入你心仪的数字:");
int number = new Scanner(System.in).nextInt();
if(number<random)
{
System.out.println("输入数字过小!");
}
else if(number>random)
{
System.out.println("输入数字过大!");
}
else
{
System.out.println("答对了!");
break;
}
}
while(true);
}
}
五.变量
1.根据位置不同,变量的名字和用法作用都不一样,支持就近原则。
成员变量:在类中,方法外,不用初始化,也会被自动初始化为默认值。作用域是整个类中,类消失后,变量才会被释放。
局部变量:定义在方法中,或者局部代码块中。必须手动初始化,来分配内存。例如int i = 5;作用域也就是方法里或者局部代码块里,方法运行完内存就释放了。
六.三种循环的区别
1.相同点:都是用来循环某一段代码。
2.不同点:
<1>for循环的要求比较细致,知道从何处开始,要循环多少次,以及每次的规律。
<2>do-while能够保证循环体至少执行一次,不管条件如何。
<3>while只知道条件,先判断再循环。
七.方法
1.定义:被命名的代码块,方法可以含参数也可以不含参数。可以提高代码的复用性。
2.形式:修饰符 返回值 方法名(参数){方法体;}
3.作用:重复使用,提高代码的复用性。
4.例题1,方法的调用案例。
package Practice;
//方法的调用。
public class Practice_07 {
//一个类中可能会有很多方法。
public static void main(String[] args) {
System.out.println("第1行");
System.out.println("第2行");
System.out.println("第3行");
function();//调用指定的方法function。
System.out.println("第4行");
System.out.println("第5行");
System.out.println("第6行");
}
//创建方法,且必须是static。
public static void function() {
System.out.println("我是来插队的!");
}
}
5.例题2,方法参数的简单案例。
package Practice;
//测试方法参数。
public class Practice_08 {
public static void main(String[] args) {
save(10);//调用制定方法时,括号内不为空。
get("Tony");
add(1,2);
}
public static void save(int a) {
//(参数类型 参数名)
System.out.println(a*a);
}
public static void get(String name) {
System.out.println(name + "是个大好人!");
}
public static void add(int x,int y) {
System.out.println("计算结果为:" + (x+y));
}
}
6.例题3,方法的返回值简单案例。
package Practice;
//测试方法返回值。
public class Practice_09 {
public static void main(String[] args) {
int xx = add(1,2);
System.out.println(xx);
}
public static int add(int x,int y) {
//System.out.print("二者之和为:" + (x+y));
return (x+y);
}
}
八.方法的重载
1.定义:是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数列表,也就是说参数的个数和类型不同。调用程序方法时,可以通过传递给它们不同个数和类型的参数来决定具体使用哪一个方法。
2.例题1,方法重载的简单案例。
package Practice;
//方法重载。
public class Practice_11 {
public static void main(String[] args) {
add(1,2);
add(1,2,3);
add(1,2,"蔡徐坤");
add("蔡徐坤",1,2);
}
public static void add(int x,int y) {
System.out.println();
}
public static void add(int x,int y,int z) {
}
public static void add(int x,int y,String name) {
}
public static void add(String name,int x,int y) {
}
}
九.数组
1.定义:Array是用于存储多个相同类型数据的集合,想要获取数组中的元素值,可以通过元素的下标来获取,下标是从0开始的。
2.创建方式
<1>动态初始化: int [] a = new int[5];
新建int[],长度为5。
刚创建好的数组都是默认值0,int类型的数据默认值为0。
把数组的地址值交给变量a保存。
<2>静态初始化:
第一种形式 : int [] a = new int[]{1,2,3,4,5};
第二种形式 : int [] a = {1,2,3,4,5};
3.例题1,数组的简单案例。
package Practice;
import java.util.Arrays;
//数组案例。
public class Practice_13 {
public static void main(String[] args) {
int [] a = new int[5];
System.out.println(Arrays.toString(a));
int [] b = new int[] {
1,2,3,4,5};
System.out.println(Arrays.toString(b));
int [] c = {
1,2,3,4,5};
System.out.println(Arrays.toString(c));
}
}
4.例题2,在数组中存入hello。
package Practice;
import java.util.Arrays;
//数组中存入hello。
public class Practice_14 {
public static void main(String[] args) {
char[] a = new char[5];
a[0] = 'H';
a[1] = 'e';
a[2] = 'l';
a[3] = 'l';
a[4] = 'o';
System.out.println(Arrays.toString(a));
}
}
5.数组长度与遍历
通过length属性获取数组长度,数组一旦创建,长度就不可再变化,并且允许0长度的数组。从头到尾,依次访问数组的位置。
遍历形式:for(int i=0;i<a.length;i++){输出(a[i])}
6.例题3,输出每个月的天数。
package Practice;
//输出每个月的天数。
public class Practice_15 {
public static void main(String[] args) {
int [] a = new int[] {
31,28,31,30,31,30,31,31,30,31,30,31};
for(int i=0;i<a.length;i++)
{
System.out.println((i+1) + "月" + "有" + a[i] + "天");
}
}
}
7.例题4,遍历数组,存入1到10。
package Practice;
import java.util.Arrays;
//遍历数组,存入1到10。
public class Practice_16 {
public static void main(String[] args) {
int [] a = new int[10];
for(int i = 0;i<a.length;i++)
{
a[i] = i+1;
}
System.out.println(Arrays.toString(a));
}
}
8.例题5,获取100以内的随机数的数组。
package Practice;
import java.util.Arrays;
//创建随机数组。
import java.util.Random;
public class Practice_17 {
public static void main(String[] args) {
int [] a = new int[5];
for(int i=0;i<a.length;i++)
{
a[i] = new Random().nextInt(100);
}
System.out.println(Arrays.toString(a));
}
}
十.数组工具类
1.toString(),把数组里的数据,用逗号连接成一个字符串。格式:[10, 14, 20, 46, 51]。