JavaSE基本语法下

程序流程控制

流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。

三种基本流程结构:

  • 顺序结构
    程序从上到下逐行地执行,中间没有任何判断和跳转。

  • 选择结构
    根据条件,选择性地执行某段代码。
    有if…else和switch-case两种分支语句。

  • 循环结构
    根据循环条件,重复性的执行某段代码。
    有while、do…while、for三种循环语句。
    注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素。

选择结构

if-else结构

分支结构中的if-else结构

存在三种结构
第一种
if(条件表达式){
	执行表达式
}

第二种:二选一
if(条件表达式){
	执行表达式1
}
else{
	执行表达式2
}

第三种:多选一
if(条件表达式1){
	执行表达式1
}
else if(条件表达式2){
	执行表达式2
}else if(条件表达式3){
	执行表达式3
}
...
else{
	执行表达式n
}
package com.atguigu.java;

public class IFTest {
	public static void main(String[] args) {
		//举例1
		int heartBeats = 79;
		if(heartBeats < 60 || heartBeats > 100) {
			System.out.println("需要做进一步检查");
		}
		System.out.println("检查结束");
		
		//举例2
		int age = 23;
		if(age < 18) {
			System.out.println("多看看动画片");
		}else {
			System.out.println("多工作");
		}
	}
}

Scanner类的使用

使用Scanner类从键盘获取不同属性的变量

如何从键盘获取不同属性的变量:需要使用Scanner类

具体实现步骤:
1.导包  import java.util.Scanner;
2.Scannner的实例化 
3.调用Scanner类的相关方法(next()/nextXXX()),来获取指定类型的变量

注意:
需要根据相应的方法,来输入指定类型的值。如果输入的数据类型与要求的类型不匹配时,
可能会导致异常,使得程序终止。
package com.atguigu.java;
/*
如何从键盘获取不同属性的变量:需要使用Scanner类

具体实现步骤:
1.导包  import java.util.Scanner;
2.Scannner的实例化 
3.调用Scanner类的相关方法(next()/nextXXX()),来获取指定类型的变量

注意:
需要根据相应的方法,来输入指定类型的值。如果输入的数据类型与要求的类型不匹配时,、
可能会导致异常,使得程序终止。
 */
import java.util.Scanner;
public class ScannerTest {
	public static void main(String[] args) {
		Scanner  scan = new Scanner(System.in);
		
		System.out.println("请输入你的姓名");
		String name = scan.next();//scan实例获取字符型变量
		System.out.println(name);
		
		System.out.println("请输入你的芳龄");
		int age = scan.nextInt();//scan实例获取整型变量  
		System.out.println(age);
		
		System.out.println("请输入你的体重");
		double weight = scan.nextDouble();//scan实例获取浮点型变量
		System.out.println(weight);
		
		System.out.println("你是否相中我了呢?(true/false)");
		boolean result = scan.nextBoolean();//scan实例获取布尔型变量
		System.out.println(result);
		
		//对于char型的获取,Scanner没有提供相关的方法,只能获取字符串
		System.out.println("请输入你的性别:(男/女)");
		String gender = scan.next();
		char genderChar = gender.charAt(0);
		System.out.println(genderChar);//获取索引位置为0位置上的字符
	}
}
/*
//结果
请输入你的芳龄
20
20
请输入你的体重
80
80.0
你是否相中我了呢?(true/false)
false
false
请输入你的性别:(男/女)
男
男
*/

If-else例题

例题1

岳小鹏参加Java考试,他和父亲岳不群达成承诺:
如果:
成绩为100分时,奖励一辆BMW;
成绩为(8099]时,奖励一台iphone xs max;
当成绩为[60,80]时,奖励一个 iPad;
其它时,什么奖励也没有。
请从键盘输入岳小鹏的期末成绩,并加以判断
package com.atguigu.java;

import java.util.Scanner;//导包

public class IfExer1 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);//实例化
		
		System.out.println("请输入岳小鹏的成绩(0-100)");
		int score = scan.nextInt();//调用
		
		if(score == 100) {
			System.out.println("奖励一辆BMW");
		}else if(score > 80 && score <= 99) {
			System.out.println("奖励一台iphone xs max");
		}else if(score >= 60 && score <= 80) {
			System.out.println("奖励一个 iPad");
		}else {
			System.out.println("什么奖励也没有");
		}
		
	}
}
/*
//结果
请输入岳小鹏的成绩(0-100)
79
奖励一个 iPad
*/
说明:
1.else结构是可选的。
2.针对于条件表达式
	如果多个条件表达式之间是"互斥"关系,那个判断和执行语句声明在上面还是下面,无所谓
	如果多个条件表达式之间有交集关系,需要根据实际情况,考虑清楚应该将那个结构声明在上面
	如果多个条件表达式之间有包含关系,通常需要将范围小的声明在范围大的上面

例题2

编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,
对它们进行排序(使用 if-else if-else),并且从小到大输出。

先比较num1 和 num2,得到num1 和 num2的大小关系,再把num3 插入到他们之间

说明:
1.if-else结构是可以嵌套的
2.如果if-else结构中的执行语句只有一行时,可以省略大括号,不建议采用
package com.atguigu.java;

import java.util.Scanner;//导包
public class IfExer2 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.println("请输入第一个整数");
		int num1 = scan.nextInt();
		System.out.println("请输入第二个整数");
		int num2 = scan.nextInt();
		System.out.println("请输入第三个整数");
		int num3 = scan.nextInt();
		
		if(num1 >= num2) {
			if(num3 >= num1) {
				System.out.println(num2 + "," + num1 + "," + num3);
			}else if (num3 >= num2) {
				System.out.println(num2 + "," + num3 + "," + num1);
			}else {
				System.out.println(num3 + "," + num2 + "," + num1);
			}
		}else {
			if(num3 >= num2) {
				System.out.println(num1 + "," + num2 + "," + num3);
			}else if (num3 >= num1) {
				System.out.println(num1 + "," + num3 + "," + num2);
			}else{
				System.out.println(num3 + "," + num1 + "," + num2);
			}
		}			
	}
}
/*
//结果
请输入第一个整数
30
请输入第二个整数
-50
请输入第三个整数
98
-50,30,98
*/

例题3

我家的狗5岁了,5岁的狗相当于人类多大呢?其实,狗的前两年每
一年相当于人类的10.5岁,之后每增加一年就增加四岁。那么5岁的狗
相当于人类多少年龄呢?应该是:10.5 + 10.5 + 4 + 4 + 4 = 33岁。
编写一个程序,获取用户输入的狗的年龄,通过程序显示其相当于人
类的年龄。如果用户输入负数,请显示一个提示信息。
package com.atguigu.java;

import java.util.Scanner;//导包
public class IfExer3 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);//实例化
		
		System.out.println("请输入狗的年龄");
		int dogAge = scan.nextInt();//调用
		double dogtopersonAge;
		
		if(dogAge <= 0) {
			System.out.println("输入不合法");
		}else { 
			if(dogAge <= 2) {
				dogtopersonAge =  dogAge*10.5;
			}else{
				dogtopersonAge = 2*10.5 + (dogAge-2)*4;
			}
			System.out.println("相当于人的年龄:" + dogtopersonAge);
		}
		
	}
}
/*
//结果
请输入狗的年龄
5
相当于人的年龄:33.0
*/

随机数的产生:一个小点

package com.atguigu.java;
/*
随机数的产生:10-99
 */
public class IfExer4 {
	public static void main(String[] args) {
		double value1 = Math.random()*100;// [0.0 1.0)-->[0.0 100.0)
		double value2 = (int)(Math.random()*90 + 10);// 10-99
		System.out.println(value2);
		// 公式 [a,b] : (int)(Math.random()*(b-a+1) + a)
	}
}

例题4

大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出
一定的条件:高:180cm以上;富:财富1千万以上;帅:是。
如果这三个条件同时满足,则:“我一定要嫁给他!!!”
如果三个条件有为真的情况,则:“嫁吧,比上不足,比下有余。”
如果三个条件都不满足,则:“不嫁!”
package com.atguigu.java;

import java.util.Scanner;//导包
public class IfExer5 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);//实例化
		
		System.out.println("请输入你的身高(cm):");
		int height = scan.nextInt();//
		System.out.println("请输入你的财富(千万):");
		double wealth = scan.nextDouble();
		System.out.println("请输入你是否帅(true/false):");
		boolean isHandsome = scan.nextBoolean();
		
		if(height >= 180 && wealth >= 1 && isHandsome) {
			System.out.println("我一定要嫁给他!!!");
		}else if(height >= 180 || wealth >= 1 || isHandsome) {
			System.out.println("嫁吧,比上不足,比下有余。");
		}else {
			System.out.println("不嫁!");
		}
		
	}
}
/*
//结果
请输入你的身高(cm):
172
请输入你的财富(千万):
0.3
请输入你是否帅(true/false):
true
嫁吧,比上不足,比下有余。
*/

Switch-case结构

分支结构之二:switch-case

1.格式
switch(表达式){
case 常量1:
	执行语句1;
	//break;
case 常量2:
	执行语句2;
	//break;
	...
default:
	执行语句n;
	//break;
}

说明:
1.根据switch表达式中的值,依次匹配各个case中的常量,一旦匹配成功,则进入相应case中的语句去执行
当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到breakswitch-case结构结束
2.break关键字,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构
3.switch结构中的表达式,只能是如下的6种数据类型:
	byte,short,char,int,枚举类型,String类型
4.case之后声明常量,不能声明范围
5.break关键字是可选的
6.default 相当于if-else结构中的else
		default结构是可选的

package com.atguigu.java;

public class SwitchCaseTest {
	public static void main(String[] args) {
		int number = 2;
		switch(number) {
		
		case 0:
			System.out.println("zero");
			break;
		case 1:
			System.out.println("one");
			break;
		case 2:
			System.out.println("two");
			break;
		case 3:
			System.out.println("three");
			break;
		default:
			System.out.println("other");
		}
	}
}

Switch-case例题

例题1

package com.atguigu.java;
/*
对学生成绩大于60分的,输出“合格”。低于60分的,输出“不合格”。
 */
import java.util.Scanner;//导包
public class SwitchCaseExer1 {
	public static void main(String[] args) {
	Scanner scan = new Scanner(System.in);
	
	System.out.println("请输入学生的成绩(0-100):");
	int score = scan.nextInt();
	switch(score/60) {
	case 0:
		System.out.println("不合格");
		break;
	case 1:
		System.out.println("合格");
		break;
	default:
		System.out.println("输入有误");	
	}	
	}
}
/*
//结果
请输入学生的成绩(0-100):
80
合格
*/

例题2

根据用于指定月份,打印该月份所属的季节。
3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季
package com.atguigu.java;

import java.util.Scanner;//导包
public class SwitchCaseExer2 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);//实例化
		
		System.out.println("请输入月份(1-12):");
		int month = scan.nextInt();//调用
		
		switch(month) {
		case 12:
		case 1:
		case 2:
			System.out.println("冬季");
			break;
		case 3:
		case 4:
		case 5:
			System.out.println("春季");
			break;
		case 6:
		case 7:
		case 8:
			System.out.println("夏季");
			break;
		case 9:
		case 10:
		case 11:
			System.out.println("秋季");
			break;
		default:
			System.out.println("输入有误");
		}
	}
}
/*
//结果
请输入月份(1-12):
10
秋季
*/

例题3

编写程序:从键盘上输入2019年的“month”和“day”,要求通过程序
输出输入的日期为2019年的第几天。

算法分析:
利用 switch-casebreak结构是可选的,并且在无break结构中,程序会从某个case接口进入,然后执行后续所有的case

举例 :计算520 需要1-4月的天数 + 20
计算 718 需要 1-6月的天数 + 18 
....
可以看出来 1.2.3月需要执行的频率比较高 所以往下边放
package com.atguigu.java;

import java.util.Scanner;//导包
public class SwitchCaseExer3 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);//实例化
		
		System.out.println("请输入2019年的月份(1-12):");
		int month = scan.nextInt();//调用
		System.out.println("请输入2019年的天数(1-31):");
		int days = scan.nextInt();//调用
		
		//定义变量来保存总天数
		int sumDays = 0;
		switch(month) {
		case 12:
			sumDays += 30;
		case 11:
			sumDays += 31;
		case 10:
			sumDays += 30;
		case 9:
			sumDays += 31;
		case 8:
			sumDays += 31;
		case 7:
			sumDays += 30;
		case 6:
			sumDays += 31;
		case 5:
			sumDays += 30;
		case 4:
			sumDays += 31;
		case 3:
			sumDays += 28;
		case 2:
			sumDays += 31;
		case 1:
			sumDays += days;
		}
		System.out.println("2019年的" + month + "月" + days + "日" + "2019年的第"+ sumDays+"天");
	}
}
/*
//结果
请输入2019年的月份(1-12):
4
请输入2019年的天数(1-31):
3
2019年的4月3日2019年的第93天
*/

例题4

package com.atguigu.java;
/*
从键盘分别输入年、月、日,判断这一天是当年的第几天
 */
import java.util.Scanner;

public class SwitchCaseExer4 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);//实例化
		
		System.out.println("请输入年份:");
		int year = scan.nextInt();//调用
		System.out.println("请输入月份(1-12):");
		int month = scan.nextInt();//调用
		System.out.println("请输入天数(1-31):");
		int days = scan.nextInt();//调用
		
		//定义变量来保存总天数
		int sumDays = 0;
		switch(month) {
		case 12:
			sumDays += 30;
		case 11:
			sumDays += 31;
		case 10:
			sumDays += 30;
		case 9:
			sumDays += 31;
		case 8:
			sumDays += 31;
		case 7:
			sumDays += 30;
		case 6:
			sumDays += 31;
		case 5:
			sumDays += 30;
		case 4:
			sumDays += 31;
		case 3:
			if((year % 4 == 0 && year % 100 != 0)|| year % 400 == 0) {
				sumDays += 29;
			}else {
				sumDays += 28;
			}
		case 2:
			sumDays += 31;
		case 1:
			sumDays += days;
		}
		System.out.println(year + "年的" + month + "月" + days + "日是" + year + "年的第"+ sumDays+"天");
	}
}
/*
//结果
请输入年份:
2018
请输入月份(1-12):
3
请输入天数(1-31):
20
2018年的3月20日是2018年的第79天
*/

例题5

编写程序:从键盘上读入一个学生成绩,存放在变量score中,根据score的
值输出其对应的成绩等级:
score>=90 等级: A
70<=score<90 等级: B
60<=score<70 等级: C
score<60 等级: D
package com.atguigu.java;

import java.util.Scanner;//导包
public class SwitchCaseExer5 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);//实例化
		
		System.out.println("请输入你的成绩(0-100):");//不能超过100 或者 小于0 没有进行异常数据检测
		int score = scan.nextInt();//调包
		
		switch(score/10) {
		case 10:
		case 9:
			System.out.println("等级: A");
			break;
		case 8:
		case 7:
			System.out.println("等级: B");
			break;
		case 6:
			System.out.println("等级: C");
			break;
		default:
			System.out.println("等级: D");
		}
	}
}
/*
//结果
请输入你的成绩(0-100):
99
等级: A
*/

循环结构

循环语句的四个组成部分

  • 初始化部分(init_statement)
  • 循环条件部分(test_exp)
  • 循环体部分(body_statement)
  • 迭代部分(alter_statement)

for循环

for循环结构的使用
一 循环结构的4个要素
	1初始化条件
	2循环条件 ---Boolean类型
	3循环体
	4迭代条件
二 for循环结构
for(1初始化条件;2循环条件;4迭代条件){
	3循环体
}	

执行过程:1-->2-->3-->4-->2--->4--->2.....-->2
package com.atguigu.java;

public class ForTest1 {
	public static void main(String[] args) {
		for(int i = 1;i <= 5;i++) {
			System.out.println("Hello World!");
			// i:在for循环内有效,出了for循环就失效了
		}
		
		//练习  熟悉循环结构的执行过程
		int num = 1;
		for(System.out.print('a');num <= 3;System.out.print('c'),num++) {
				System.out.print('b');
		}
		// a --> b -->c -->b--->c--->b----c 
		
		//遍历100以内的偶数,并输出所有偶数的和
		int sum = 0;
		for(int j = 1;j <= 100;j++) {
			if(j % 2 == 0) {
				sum += j;
				System.out.println(j);
			}
			System.out.println(sum);
		}
	}
}

例题1

编写程序从1循环到150,并在每行打印一个值,
另外在每个3的倍数行上打印出“foo”,
	在每个5的倍数行上打印“biz”,
	在每个7的倍数行上打印输出“baz”
package com.atguigu.java;

public class ForExer1 {
	public static void main(String[] args) {
		String printValue;
		
		for(int i = 1;i <= 150;i++) {
			printValue = "";
			printValue += i;
			
			if(i % 3 == 0) {
				printValue += " foo";
			}
			if(i % 5 == 0) {
				printValue += " biz";
			}
			if(i % 7 == 0) {
				printValue += " baz";
			}
			System.out.println(printValue);
		}
	}
}

例题2

题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
比如:1220的最大公约数是4,最小公倍数是60。

说明:break关键字的使用
package com.atguigu.java;

import java.util.Scanner;//导包
public class ForExer2 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);//实例化
		
		System.out.println("请输入第一个正整数:");
		int m = scan.nextInt();//调用
		System.out.println("请输入第二个正整数:");
		int n = scan.nextInt();//调用
		
		//获得两个数中的较小值
		int min = (m > n)?n:m;
		
		for (int i = min;i >= 1;i--) {
			if(m % i == 0 && n % i == 0) {
				System.out.println("最大公约数是"+ i);
				break;//一旦在循环中执行到break,就跳出
			}
		}
		
		//获得两个数中的较大值
		int max = (m > n)?m:n;
				
		for (int i = max;i <= m*n;i++) {
			if(i % m == 0 && i % n == 0) {
				System.out.println("最小公倍数是"+ i);
				break;//一旦在循环中执行到break,就跳出
			}
		}
	}
}
/*
//结果
请输入第一个正整数:
20
请输入第二个正整数:
12
最大公约数是4
最小公倍数是60
*/

例题3

public class ForExer3 {
	public static void main(String[] args) {
		//打印1~100之间所有奇数的和
		int sum = 0;
		for(int i = 1;i <= 100;i++) {
			if(i % 2 == 1) {
				sum += i;
			}
		}
		System.out.println("1~100之间所有奇数的和为" + sum);
        //1~100之间所有奇数的和为2500

        //打印1~100之间所有是7的倍数的整数的个数及总和(体会设置计数器的思想)
		int sumSeven = 0;
		int countSeven = 0;
		for(int i = 1;i <= 100;i++) {
			if(i % 7 == 0) {
				sumSeven += i;
				countSeven++;
			}
		}
		System.out.println("1~100之间7的倍数的整数的总和为" + sumSeven);
		System.out.println("1~100之间7的倍数的个数为" + countSeven);
	    //1~100之间7的倍数的整数的总和为735
        //1~100之间7的倍数的个数为14

	}
}

While循环

While循环结构的使用
一 循环结构的4个要素
	1初始化条件
	2循环条件 ---Boolean类型
	3循环体
	4迭代条件
二 while循环结构
1循环初始条件;
while(2循环条件){
	3循环体;
	4迭代条件;
}

执行过程:1-->2-->3-->4-->2--->4--->2.....-->2
 
说明:
1.while循环千万小心不要丢了迭代条件。一旦丢了 可能导致死循环。
2.写程序要注意避免出现死循环
3.for循环和while循环是可以相互转换的!
	区别:for循环和while循环的初始化条件作用域不一样
package com.atguigu.java;

public class WhileTest {
	public static void main(String[] args) {
		//遍历 100 以内的所有偶数
		int i = 1;
		while(i <= 100) {
			if(i % 2 == 0) {
				System.out.println(i);
			}
			i++;
		}
	}
}

do-while循环

do-while循环结构的使用
一 循环结构的4个要素
	1初始化条件
	2循环条件 ---Boolean类型
	3循环体
	4迭代条件
二 do-while循环结构
1初始化条件;
do{
	3循环体;
	4迭代条件;
}while(2循环条件);

执行过程:1-->3-->4-->2-->3--->4--->2.....-->2
package com.atguigu.java;

public class DoWhileTest {
	public static void main(String[] args) {
		//遍历100以内的偶数
		int i = 1;
		do {
			if(i % 2 == 0) {
			System.out.println(i);
			}
			i++;
		}while(i <= 100);
	}
}

循环语句综合例题

从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入
为0时结束程序。

说明:
1.不在循环条件部分限制次数的结构:for(;;),while(true)
2.结束循环有几种方式?
	方式一:在循环条件部分返回false
	方式二:在循环体中,执行break
package com.atguigu.java;

import java.util.Scanner;//导包
public class AllExer1 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);//实例化
		
		int sumPositive = 0,sumNegative = 0;
		//sumPositive 记录正数的个数
		//sumNegative 记录负数的个数
		while(true) {
			int number = scan.nextInt();//调包
			
			//判断正负情况
			if(number == 0) {
				break;
			}else if(number > 0) {
				sumPositive++;
			}else {
				sumNegative++;
			}
		}
		
		System.out.println("读入正数的个数为" + sumPositive);
		System.out.println("读入负数的个数为" + sumNegative);

	}
}
/*
//结果
5
-2
92
12
-2138
0
读入正数的个数为3
读入负数的个数为2
*/

嵌套循环

嵌套循环的使用
1.嵌套循环:将一个循环结构A声明在另一个循环结构B的循环体中,就构成了嵌套循环
2.外层循环:B
     内层循环:A
3.说明
3.1内层循环结构遍历一遍,只相当于外层循环体执行了一次
3.2假设外层循环需要执行m次,内层循环需要执行n次,此时内层循环的循环体一共执行了m*n次
4.技巧
外层循环控制行数
内层循环控制列数
package com.atguigu.java;

public class ForForExer1 {
	public static void  main(String[] args) {
		//输出 ******
		for(int i = 1;i <= 6;i++) {
			System.out.print("*");
		}
		System.out.println("\n");
		//输出
		/*
		 ******
		 ******
		 ******
		 ******
		 */
		for(int j = 1;j <= 4;j++) {
			for(int i = 1;i <= 6;i++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

例题1

输出
		 i(行数)	j(列数)
* 		 1			1 
**       2			2
***      3     		3
****     4     		4
		 
package com.atguigu.java;

public class ForForExer2 {
	public static void main(String[] args) {
		
		for(int i = 1;i <= 4;i++) {
			for(int j = 1;j <= i;j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

例题2

九九乘法表
1 * 1 = 1
2 * 1 = 2  2 * 2 = 4
....
9 * 1 = 9  9 * 2 = 18 9 * 3 = 27 
package com.atguigu.java;

public class NineNineTable {
	public static void main(String[] args) {
		for(int i = 1;i <= 9;i++) {
			for(int j = 1;j <= i;j++) {
				System.out.print(i + " * " + j + " = " + (i*j) + " ");
			}
			System.out.println();
		}
	}
}

例题3

输出100以内的质数
package com.atguigu.java;

public class PrimeNumberTest {
	public static void main(String[] args) {
		
		boolean isFlag;//标识符
		for(int i = 2;i <= 100;i++) {//遍历100以内的自然数
			isFlag = true;
			for(int j = 2;j <= Math.sqrt(i);j++) {//j:被i去除
				//Math.sqrt(i) 优化二:针对本身是质数自然数有效
				if(i % j == 0) {//i被j除尽
					isFlag = false;
					break;//优化一:只对本身非质数的自然数是有效的
				}
			}
			if(isFlag) {
				System.out.println(i);
			}
			
		}
	}
}

特殊关键字break,continue的使用

breakcontinue关键字的使用
			适用范围					循环中的作用
break:      switch-case,循环            结束当前循环

continue:   循环 						结束当次循环
package com.atguigu.java;

public class BreakTest {
	public static void main(String[] args) {
		
		for(int i = 1;i <= 10;i++) {
			
			if(i % 4 == 0) {
				//break;123
				continue;//123567910
			}
			
			System.out.print(i);
		}
		System.out.println();
		
		//*************
		label:for(int i = 1;i <= 4;i++) {
			
			for(int j = 1;j <= 10;j++) {
				
				if(j % 4 == 0) {
					//break;//默认跳出包裹此关键字的最近一次循环
					//continue;//默认结束包裹此关键字的最近一次循环
					
					break label;//结束指定标签的一层循环
                    //continue label;
				}
				System.out.print(j);
			}
			System.out.println();
		}
	}
}
/*
//结果
123567910
123
*/

参考文献

链接: B站尚硅谷宋红康Java.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值