1、引用数据类型
格式:数据类型 变量名 = new 数据类型();
每个引用类型都有自己的功能,如何使用功能?
格式:变量.方法名,如sc.nextInt(); 接收键盘输入,保证输入的是整数,否则Exception(异常)
Scanner的另外一个功能 next() 接收键盘输入的字符串
①Scanner类
Scanner sc=new Scanner(System.in);
Scanner类的作用,接受键盘的输入。
使用Scanner类的步骤:
1、导入包:指明类所在的文件夹,Java文件夹-util文件夹 import java.util.Scanner;
2、创建Scanner类型变量 Scanner sc=new Scanner(System.in);
3、变量.使用Scanner类中的功能,完成键盘输入 sc.nextInt();
1 import java.util.Scanner; 2 public class ScannerDemo{ 3 public static void main(String args[]){ 4 Scanner sc=new Scanner(System.in); 5 //接收键盘输入,保证输入的是整数,否则Exception(异常) 6 int i=sc.nextInt(); 7 System.out.println(i); 8 9 //Scanner的另外一个功能 next() 接收键盘输入的字符串 10 String s=sc.next(); 11 System.out.println(s); 12 } 13 }
运行结果:
②Random类
Random类的作用,产生随机数;
随机数:伪随机数,虚拟机根据人写好的一个算法,生成出来的。
使用Random类的步骤:
1、导入包,Random类也在java.util文件夹 import java.util.Random;
2、创建Random类型变量
3、变量.调用Random类中的功能,产生随机数
ran.nextInt(i) 产生一个随机数,结果是int类型,随机数的范围是【0,i);
ran.nextDouble() 产生一个随机数,结果是double类型,随机数的范围是【0.0,1.0)。
1 import java.util.Random; 2 public class RandomDemo{ 3 public static void main(String args[]){ 4 Random ran=new Random(); 5 int i=ran.nextInt(50);//随机数在[0,50) 6 System.out.println(i); 7 8 double d=ran.nextDouble(); 9 System.out.println(d);//产生一个随机数,结果是double类型,随机数的范围是【0.0,1.0) 10 } 11 }
运行结果:
2、流程控制语句
①选择语句if
(1)if语句
语法格式:
if(条件){
if语句的执行体;
}
条件:结果必须是布尔类型
执行体:当if中的条件为true的时候,执行大括号中的执行体;当if条件为false的时候,什么也不做。
if条件不能加分号(;)
1 public class IfDemo{ 2 public static void main(String args[]){ 3 int i=5; 4 //对变量i进行if判断 5 if(i==5){ 6 System.out.println("if中的条件是true"); 7 i++;//6 8 } 9 System.out.println(i);//6 10 } 11 }
运行结果:
(2)if…else语句
语法格式:
if(条件){
if语句的执行体;
}else{
else的执行体;
}
当if中的条件为true,执行if的执行体;
当if中的条件为false,执行else的执行体。
1 public class IfElseDemo{ 2 public static void main(String args[]){ 3 int i=17; 4 //判断变量是奇偶数,模2,看余数是1还是0 5 if(i%2==0){ 6 System.out.println(i+" 是偶数"); 7 }else{ 8 System.out.println(i+" 是奇数"); 9 } 10 11 } 12 }
运行结果:
(三)if… else if… else语句
语法格式:
if(条件){
if语句的执行体;
}else if{
if语句的执行体;
}else if{
if语句的执行体;
}else{
else的执行体;
}
当if语句的条件是true,执行if执行体;
if中的条件是false,执行else执行体;
一个语句中,包含多个if,只要有1个if的条件是true,其他的代码不再执行。
1 public class IfElseIfDemo{ 2 public static void main(String args[]){ 3 //成绩判断要求,成绩>80 成绩>70 成绩>60 不及格 4 int grade=75; 5 //使用if else if语句对成绩进行判断 6 if(grade >80){ 7 System.out.println(grade+" 成绩是优"); 8 }else if(grade>70){ 9 System.out.println(grade+" 成绩是良"); 10 }else if(grade>60){ 11 System.out.println(grade+" 成绩是中"); 12 }else{ 13 System.out.println(grade+" 成绩是差"); 14 } 15 } 16 }
运行结果:
(四)if语句与三元运算符转化
三元运算符语法
判断条件 ? 表达式1:表达式2
使用if语句还是使用三元运算符呢?
判断条件较多,使用if;
三元运算必须有结果,if语句可以没有结果。
②循环语句
循环语句作用:可以让一部分代码,反复执行
(一)while循环
格式:
while(条件){
循环体
}
条件:当条件是true就执行循环体,执行完循环体后程序再次执行while中的条件,如果条件还是true,继续执行循环体,直到条件是false的时候,循环就结束。
命令提示符CMD窗口中,强制停止正在运行的命令,使用 CTRL+C 组合键。
1 public class WhileDemo{ 2 public static void main(String args[]){ 3 int i=1; 4 while(i<5){ 5 System.out.println(i); 6 i++; 7 } 8 } 9 }
运行结果:
(二)for循环
格式:
for(初始化变量;条件;增量){
循环体
}
初始化变量:定义变量是true,作用:控制循环的次数;
条件:当条件是true,执行循环体,再执行增量,条件是false,结束循环;
增量:变量自增情况。
1 public class ForDemo{ 2 public static void main(String args[]){ 3 //for循环,输出0-10 4 for(int i=0;i<11;i++){ 5 System.out.println(i); 6 } 7 } 8 }
运行结果:
利用for循环,计算1+……+100的结果
1 public class ForDemo_1{ 2 public static void main(String args[]){ 3 int sum=0; 4 for(int i=1;i<=100;i++){ 5 sum=sum+i; 6 } 7 System.out.println(sum); 8 } 9 }
运行结果:
(三)do…while循环
格式:
do{
循环体
}while(条件);
特点:无条件先执行一次。
1 public class DoWhileDemo{ 2 public static void main(String args[]){ 3 int i=0; 4 do{ 5 System.out.println(i); 6 i++; 7 }while(i<5); 8 } 9 }
运行结果:
(四)无限循环
(1)while死循环
1 public class WhileForDemo{ 2 public static void main(String args[]){ 3 //while形式死循环 4 while(true){ 5 6 } 7 } 8 }
(2)for形式死循环
1 public class WhileForDemo{ 2 public static void main(String args[]){ 3 //for形式死循环 4 for(;;){//或者for(;true;) 5 6 } 7 } 8 }
(五)嵌套循环
循环的嵌套:循环里面还有循环,for形式居多;
总的循环次数=外循环次数*外循环次数;
内循环是外循环的循环体;
外循环控制的是行数,外循环控制的是列数。
1 public class ForForDemo{ 2 public static void main(String args[]){ 3 for(int i=0;i<9;i++){ 4 for(int j=0;j<=i;j++){ 5 System.out.print("* "); 6 } 7 System.out.println(); 8 } 9 } 10 }
运行结果:
③跳转语句
(一)break
break关键字,作用于循环中,终止循环的作用;
1 public class BreakDemo{ 2 public static void main(String args[]){ 3 int i=1; 4 while(true){ 5 if(i==3){ 6 break; 7 }else{ 8 System.out.println(i); 9 } 10 i++; 11 } 12 } 13 }
运行结果:
(二)continue
continue关键字,在循环中,终止本次循环,开始下一次循环
1 public class ContinueDemo{ 2 public static void main(String args[]){ 3 for(int i=0;i<10;i++){ 4 if(i%2==0){ 5 continue;//遇到偶数结束,奇数求和。 6 } 7 System.out.println(i); 8 } 9 } 10 }
运行结果:
3、猜数字案例
随机一个数字让用户猜结果有三种情况:
中了,大了,小了。
1 import java.util.Random; 2 import java.util.Scanner; 3 public class GuestNumber{ 4 public static void main(String args[]){ 5 System.out.println("猜数字开始了"); 6 System.out.println("请输入1-100之间的数字"); 7 Random ran=new Random(); 8 //获取1-100之间的随机数 9 int ranNumber=ran.nextInt(100)+1; 10 //System.out.println(ranNumber);//这样会显示随机的数字 11 Scanner sc=new Scanner(System.in); 12 13 while(true){ 14 //获取键盘的输入 15 int number=sc.nextInt(); 16 //随机数和用户输入的数据进行比较 17 if(number>ranNumber){ 18 System.out.println("猜大了"); 19 }else if(number<ranNumber){ 20 System.out.println("猜小了"); 21 }else{ 22 System.out.println("中了"); 23 break; 24 } 25 } 26 } 27 }