4.Java入门笔记-流程控制

程序流程控制也就是控制程序的执行顺序。

程序中最经典的三种执行顺序:顺序结构,分支结构,循环结构。

1.分支结构

1.1.if分支

根据条件的真假来决定执行某段代码。

if有三种分支形式

java 复制代码
//第一种
if(条件表达式){
     代码;
}


//第二种
if(条件表达式){
     代码1;
}else{
        代码2;
}


//第三种
if(条件表达式){
     代码1;
}else if{
        代码2;
}else if{
        代码3;
}...

1.2.switch分支

通过比较值来决定执行哪条分支。

java 复制代码
switch(表达式){
    case 值1:
    执行代码...;
    break;
    case 值2:
    执行代码...;
    break;

    ...

    case 值n-1:
    执行代码...;
    break;
    default;
    执行代码n;
}

注意事项:

  1. 表达式只能是byte、short、int、char、JDK5开始支持枚举,JDK7开始支持String、不支持double、float、long
  2. case给出的值不允许重复,且只能是字面量,不能是变量。
  3. 正常使用Switch 的时候不要忘记希望break,否则会出现穿透现象。

2.循环结构

控制一段代码重复执行多次。

2.1.for循环

java 复制代码
for(初始化语句;循环条件;迭代语句){
    循环体语句(重复执行的代码):
}

2.1.1.重复五次Hello World!

java 复制代码
package item2;

public class example1 {
 public static void main(String[] args) {
	//目标:需要同学们掌握for循环的书写格式,并理解执行流程
	 //需求:打印多行Hello World
	 for(int i = 1;i <= 5; i++) {
		 System.out.println("Hello World!");
		 
	 }
	 
	 
 }
}

2.1.2.批量产生数据

java 复制代码
package item2;

public class example1 {
 public static void main(String[] args) {
	 //目标:掌握使用for循环批量产生数据
	 for(int a = 0;a <= 100; a++) {
		 System.out.println(a);
	 }
		 
	 }
	 
	 
 }
}

2.1.3.求1~100的数据和:

java 复制代码
package item2;

public class example1 {
 public static void main(String[] args) {
	//打印1~100的数据和
	 int re1 = 0;
	 for(int b = 1; b <= 100; b++) {
		 re1 += b;
	 }
	 System.out.println(re1);
	 
 }
}

2.1.4.求1~100的奇数和

java 复制代码
package item2;

public class example1 {
 public static void main(String[] args) {
	//打印1~100的奇数和
		 int re2 = 0;
		 for(int c = 1; c < 100; c+=2) {
			 re2 += c;
		 }
		 System.out.println(re2);
 }
}

2.2.while循环

格式:

java 复制代码
初始化语句;
while (循环条件){
 循环体语句(被重复执行的代码);
 迭代语句;
}

2.2.1.重复五次Hello World!

java 复制代码
package item2;

public class example1 {
 public static void main(String[] args) {
 int i = 0;
	 while ( i < 5) {
		 System.out.println("Hello World!");
		 i++; }

	 
 }
}

2.2.2.for和while对比

  • 功能上完全一样,for能解决的while也能解决
  • 使用规范上:知道循环几次的用for;不知道的用while。

2.2.3.while的循环案例

java 复制代码
package item2;

public class example1 {
 public static void main(String[] args) { 
//需求:一张厚度为0.1毫米的纸折多少次为8848.86米
	 //不知道要循环多少次用while
	 double PeakHeight = 8848860;
	 double PaperThickness = 0.1;
	 int count = 0;
	 while(PaperThickness < PeakHeight) {
		 //把纸进行折叠,厚度变成原来的两倍
		 PaperThickness *= 2;
		 count++;//记住纸张折叠的次数
	 }
	 System.out.println("需要折叠多少次:"+count);//27
 }
}

2.3.do-while循环

java 复制代码
初始化语句:
do {
   循环体语句;
迭代语句;
}while(循环条件)

2.3.1.重复五次Hello World!

java 复制代码
package item2;

public class example1 {
 public static void main(String[] args) {
//目标:掌握do-while循环的书写格式,执行流程,特点和应用场景
	 //需求:打印多行Hello World!
		 int i = 0;
		 do {
			 System.out.println("Hello World!");
			 i++;
		 }while(i < 5);
 }
  
	}

do-while:先执行后判断

while:先判断后执行

2.4.死循环

可以一直执行下去的一种循环,如果没有干预不会停下来。

2.4.1.死循环的三种写法:

java 复制代码
for( ; ; ){
     System.out.println("Hello World!");
}

//经典写法
while(true){
      System.out.println("Hello World!");
}


do{
 System.out.println("Hello World!");
}while(true);

常出现在服务器程序中。

2.5.循环嵌套

循环中又包含循环。

java 复制代码
for(int i = 0; i < 3; i++){
       for(int j = 0; j < 5; j++){
            System.out.println("Hello World!");
}
}

3.跳转关键字

3.1.break

跳出并结束当前所在循环的执行。

只能用于结束说在循环 ,或者结束所在Switch分支 的执行。

java 复制代码
package item3;

public class loveyou {
public static void main(String[] args) {
	//目标:掌握break和continue的作用
	//场景:犯错说5句我错了,第三次心软算了
	for(int i = 1;i <= 5; i++) {
		System.out.println("loveyou"+i);
		if(i == 3) {
			break;
		}
	}
	
}
}

3.2.continue

用于跳出当前循环的当次执行,直接进入循环的下一次执行。

只能在循环 中进行使用。

java 复制代码
package item3;

public class loveyou {
public static void main(String[] args) {
	//目标:掌握break和continue的作用
	
	//场景:犯错说5句我错了,第三次心软,第四天又后悔了
	
	for(int i = 1;i <= 5; i++) {
		if(i == 3) {
			continue;
		}
		
		System.out.println("loveyou"+i);
		
	}
}
}

4.综合案例--生成随机数

4.1.Random的使用

用于生成随机数。

例:得到0~9的随机数的实现步骤

  1. 导包:告诉程序去JDK的哪个包中找Random(import java.util.Random;)
  2. 写一行代码拿到随机数对象(Random r = new Random();)
  3. 调用随机数的功能获取0~9之间的随机数(int number = r.nextInt(10);)
java 复制代码
package item3;

import java.util.Random;

public class loveyou {
public static void main(String[] args) {
	//Random生成随机数案例
	//1.导包:告诉程序去JDK的哪个包中找Random
	//2.写一行代码拿到随机数对象
	Random r = new Random();
	//3.调用随机数的功能获取0~9之间的随机数
	int data = r.nextInt(10);
	System.out.println(data);
}
}

4.2.Random生成指定区间随机数

例如:要生成1~10之间的随机数,程序如何实现。(官方默认从0开始)

技巧:减加法。

java 复制代码
Random r = new Random();
	
	int data = r.nextInt(10)+1;//0~10

例:生成3~17之间的随机数

java 复制代码
package item3;

import java.util.Random;

public class loveyou {
public static void main(String[] args) {
	//Random生成随机数案例
	//1.导包:告诉程序去JDK的哪个包中找Random
	//2.写一行代码拿到随机数对象
	Random r = new Random();
	//3.调用随机数的功能获取0~9之间的随机数
	int data = r.nextInt(15)+3;//3~17 => -3 =>(0~14)+3
	System.out.println(data);
}
}

4.3.猜数字案例

要求:随机生成一个1~100之间的数据,提示用户猜测,猜大提示过大,猜小提示过小,直到猜中游戏结束。

java 复制代码
package item4;

import java.util.Random;
import java.util.Scanner;

public class randomtext {
     public static void main(String[] args) {
    	 //随机产生一个1~100之间的数据
    	 Random r = new Random();
    	 int data = r.nextInt(100)+1;
    	 System.out.println(data);
    	 //定义一个死循环,让用户不断的猜测数据
    	 Scanner sc = new Scanner(System.in);
    	 while (true) {
    		 //提示用户猜测
    		 System.out.println("输入数据:");
    		 //扫描器
    	int guessNumber = sc.nextInt();
    	
    	//判断大小
    	if(guessNumber > data) {
    		System.out.println("猜测过大~~");
    		
    	} else if(guessNumber < data) {
    		System.out.println("猜测过小~~~");
    	}else {
    		System.out.println("猜对啦!!");
    		break;//结束死循环
    	}	 
    		 
    	 }
     }
}

4.4.键盘录用补充

Java自己提供好的程序给程序员调用的

API文档:应用程序编程接口,技术说明书吗,告诉我们该怎么使用Java程序。

键盘录用技术(使用Sanner接收用户键盘输入的数据,需要三个步骤):

  1. 导包(自动导包):import java.uily.Scanner;
  2. 抄代码:代表得到键盘扫描对象的东西:Scanner sc = new Scanner(System.in);//名字:sc
  3. 抄代码:等待接收用户输入数据:①int age = sc.nextInt();//调用一个nextInt的功能,输入一个数被记住,就收到了用户输入的数值②String name = sc.next();//输入姓名
java 复制代码
package item5;

import java.util.Scanner;

public class Scanner1 {
            public static void main(String[] args) {
				//1、导包:一般不需要我们自己做,idea工具会自动帮助我们导包的。
            	//2、抄写代码:得到一个键盘扫描器对象(东西)
            	Scanner sc = new Scanner(System.in);
            	
            	//3、开始调用sc的功能,来接收用户键盘输入的数据。
            	System.out.println("请输入年龄:");
            	int age = sc.nextInt();//执行到这里,开始等待用户输入一个整数,直到用户按下回车键,才会拿到数据。
            	System.out.println("请输入姓名:");
            	String name = sc.next();//执行到这里,开始等待用户输入一个名字,直到用户按下回车键,才会拿到数据。
            	System.out.println(name + "欢迎进入");
            	}
}
相关推荐
Hejjon6 小时前
SpringBoot 整合 SQLite 数据库
笔记
西洼工作室8 小时前
【java 正则表达式 笔记】
java·笔记·正则表达式
初学者7.8 小时前
Webpack学习笔记(2)
笔记·学习·webpack
新手上路狂踩坑9 小时前
Android Studio的笔记--BusyBox相关
android·linux·笔记·android studio·busybox
stm 学习ing11 小时前
HDLBits训练3
c语言·经验分享·笔记·算法·fpga·eda·verilog hdl
尘觉11 小时前
算法的学习笔记—扑克牌顺子(牛客JZ61)
数据结构·笔记·学习·算法
bohu8312 小时前
sentinel学习笔记1-为什么需要服务降级
笔记·学习·sentinel·滑动窗口
初学者7.12 小时前
Webpack学习笔记(3)
笔记·学习·webpack
bohu8313 小时前
sentinel学习笔记5-资源指标数据统计
笔记·sentinel·statisticslot
璞~14 小时前
MQTT 课程概览 (学习笔记)02
笔记·学习