break与continue
break
continue
案例1:求1-100之间偶数和
public class ForTest03 {
public static void main(String[] args) {
//定义求和变量,初始化值是0
int sum = 0;
//获取1-100之间的数据,用for循环实现
for(int x=1; x<=100; x++) {
//把获取到的数据进行判断,看是否是偶数
if(x % 2 == 0) {
sum += x;
}
}
//输出求和结果
System.out.println("sum:"+sum);
}
}
案例2:趣味折纸
/*
* 题目:
* 世界最高山峰是珠穆朗玛峰,它的高度是8844.43米,假如我有一张足够大的纸,它的厚度是0.1毫米。
* 请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
*/
public class WhileTest01 {
public static void main(String[] args) {
//定义一个计数器,初始值为0
int count = 0;
//定义纸张厚度
double paper = 0.1;
//定义珠穆朗玛峰的高度
int zf = 8844430;
while(paper <= zf) {
paper *= 2;
count++;
}
System.out.println("需要折叠:" + count + "次");
}
}
案例3:猜数
public static void main(String[] args){
int num = (int)(Math.random()* 100);
//System.out.println(num);
//声明一个变量,用来存储猜的次数
int count = 0;
java.util.Scanner input = new java.util.Scanner(System.in);
int guess;//提升作用域
do{
System.out.print("请输入100以内的整数:");
guess = input.nextInt();
//输入一次,就表示猜了一次
count++;
if(guess > num){
System.out.println("大了");
}else if(guess < num){
System.out.println("小了");
}
}while(num != guess);
System.out.println("一共猜了:" + count+"次");
}
案例4:判断某个数是否是素数
public static void main(String[] args){
java.util.Scanner input = new java.util.Scanner(System.in);
System.out.print("请输入一个正整数:");
int num = input.nextInt();
boolean flag = true;
for (int i = 2; i <= Math.sqrt(num) ; i++) {
if(num%i==0){
flag = false;
break;
}
}
System.out.println(num + (flag?"是":"不是") + "素数");
}
案例5:水仙花数
public class ForTest04 {
public static void main(String[] args) {
//通过循环获取到每一个三位数
for(int x=100; x<1000; x++) {
//获取个位,十位,百位
int ge = x%10;
int shi = x/10%10;
int bai = x/10/10%10;
if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) {
System.out.println(x);
}
}
}
}
案例6:最大公约数和最小公倍数
public static void main(String[] args){
//输入两个正整数m和n
java.util.Scanner input = new java.util.Scanner(System.in);
int m;
while(true){
System.out.print("请输入第一个正整数m的值:");
m = input.nextInt();
if(m<=0){
System.out.println(m + "不是正整数,请重写输入!");
}else{
break;
}
}
int n;
while(true){
System.out.print("请输入第一个正整数n的值:");
n = input.nextInt();
if(n<=0){
System.out.println(n + "不是正整数,请重写输入!");
}else{
break;
}
}
System.out.println("两个正整数:" + m + "," + n);
//第一步:找出m和n中最大值和最小值
int max = m>=n ? m : n;
int min = m<n ? m : n;
//第二步:从小的开始查找
//这里的1也可以修改为min的平方根
int maxYue = 1;
for(int i=min; i>=1; i--){
//看i是否能够同时把m和n都整除
if(m%i==0 && n%i==0){
maxYue = i;
break;
}
}
System.out.println(maxYue +"是" + m + "和" + n + "的最大公约数");
//最小公倍数 = m*n / 最大公约数
//System.out.println(m*n/maxYue +"是" + m + "和" + n + "的最小公倍数");
//如果不知道这个公式
//从max开始找,一直找到m*n
for(int i=max; i<=m*n; i++){
if(i%m==0 && i%n==0){
System.out.println(i +"是" + m + "和" + n + "的最小公倍数");
break;
}
}
}
案例7:九九乘法表
public static void main(String[] args) {
for(int i =1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+(i*j) + "\t");
}
System.out.println();
}
}
案例8:打印菱形
public static void main(String[] args){
//上半部分:正的等腰三角形
//5行
for(int i=1; i<=5; i++){
for(int j=4; j>=i; j--){
System.out.print(" ");
}
for(int j=1; j<=2*i-1; j++){
System.out.print("* ");
}
System.out.println();
}
//下半部分:倒立的等腰三角形
//4行
for(int i=1; i<=4; i++){
for(int j=1; j<=i; j++){
System.out.print(" ");
}
for(int j=1; j<=9-2*i; j++){
System.out.print("* ");
}
System.out.println();
}
}