Java笔记_3(循环)

一、判断与循环

1.1、顺序结构

顺序结构语句是Java程序默认的执行流程,按照代码的先后顺序,从上到下依次执行


1.2、分支结构

1.2.1、if语句

格式一:

if (/*判断条件*/){
	//执行代码
};
  • if的注意点:
    1. 大括号的开头可以另起一行书写,但是建议写在第一行的末尾
    2. 在语句体中,如果只有一句代码,大括号可以省略不写
    3. 如果对一个布尔类型的变量进行判断,不要用==

格式二:

if (/*判断条件*/){
	//执行代码
}else{
//执行代码
};
  • 执行流程:
    1. 首先计算关系表达式的值
    2. 如果关系表达式的值为true就执行语句体1
    3. 如果关系表达式的值为false就执行语句体2
    4. 继续执行后面的其他语句

格式三:

if (/*判断条件*/){
	//执行代码
}else if{
//执行代码
}else if{
	//执行代码
}else{
	//执行代码
}
;

1.2.2、switch语句

switch(表达式){
	case1:
		语句体1;
		break;
	case2:
		语句体2;
		break;
	default:
	语句体n+1;
	break;
}
  • 执行流程:
    1. 首先计算表达式的值。
    2. 依次和case后面的值进行比较如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
    3. 如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后结束整个switch语句。

格式说明

  1. 表达式:(将要匹配的值)取值为byte、short、int、char。JDK5以后可以是枚举,JDK7以后可以是String。
  2. case:后面跟的是要和表达式进行比较的值(被匹配的值)。
  3. break:表示中断,结束的意思,用来结束switch语句。
  4. default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
  5. case后面的值只能是字面量,不能是变量
  6. case给出的值不允许重复

default的位置和省略

  • 位置: defaule不一定是写在最下面的,我们可以写在任意位置。只不过习惯会写在最下面.
  • 省略: defaule可以省略,语法不会有问题,但是不建议省略。

case穿透

执行流程:

  • 首先还是会拿着小括号中表达式的值跟下面每一个case进行匹配。
  • 如果匹配上了,就会执行对应的语句体,如果此时发现了break,那么结束整个switch语句。
  • 如果没有发现break,那么程序会继续执行下一个case的语句体,一直遇到break或者右大括号为止。

switch新特性

JDK12以后才有的新特性
case后面跟上的{}可以替换成->


1.3、循环结构

1.3.1、for循环

格式:
for (int i = 1 ;i <= 10 ;i++ ){
	system.out.println( "Helloworld" );
}

执行流程:

  1. 执行初始化语句
  2. 执行条件判断语句,看其结果是true还是false
    如果是false,循环结束
    如果是true,执行循环体语句
  3. 执行条件控制语句
  4. 回到2继续执行条件判断语句

1.3.2、while循环

格式:
初始化语句;
whi1e(条件判断语句){
	循环体语句;
	条件控制语句;
}

for和while的对比

相同点:

  • 运行规则都是一样的

for和 while的区别:

  • for循环中,控制循环的变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到
  • while循环中,控制循环的变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量
    还可以继续使用

1.3.3、do…while循环

格式:
初始化语句;
do {
	循环体语句;
	条件控制语句;
	}while(条件判断语句);

1.4、回文数的判断

package huiwen;

import java.util.Scanner;

public class huiwenshu {
    public static void main(String[] args) {
        //输入数字
        System.out.println("请输入x的值:");
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        //定义一个临时变量记录x的原来的值,用于最有进行比较
        int temp = x;
        int num = 0;
        while (x!=0){
            //从右往左获取每一个数字
            int ge = x%10;
            //修改以下x记录的值
            x = x/10;
            //把当前获取到的数字拼接到最右边
            num = num*10 +ge;
        }
        System.out.println(num);
        System.out.println(num ==temp);
    }
}


1.5、求商和余数

package huiwen;

import java.util.Scanner;

public class huiwenshu {
    public static void main(String[] args) {
        //定义被除数
        int dividend = 100;
        //定义除数
        int divisor = 10;
        int count = 0;
        //循环中用被除数-除数
        //-的次数就是除的次数
        while (dividend >=divisor){
            dividend = dividend - divisor;

            count++;

        }
        System.out.println("商为:"+count);
        System.out.println("余数为:"+dividend);
    }
}

二、循环高级

2.1、无限循环

循环一直停不下来。

for(;;){
	System.out.println("学习");
}
while(true){
	System.out.println("学习");
}
do {
	System.out.println("学习");
} while(true);

2.2、循环的跳转控制语句

使用 continue可以使跳过本次循环,继续执行下次循环
使用 break可以使结束循环

2.3、逢七过

  • 朋友聚会的时候可能会玩一个游戏:逢7过
  • 游戏规则:从任意一个数字开始报数,当你要报的数字是包含7或者是7的倍数时都要说过:过
  • 需求:使用程序在控制台打印出1-100之间的满足逢七必过规则的数据
for (int i = 0;i<=100;i++){
	if(i%10==7||10%10==7||i%7==0){
		System.out.println("过");
		continue;
	}
	System.out.println(i);
}

2.4、求平方根

  • 需求:键盘录入一个大于等于2的整数x,计算并返回×的平方根结果只保留整数部分小数部分将被舍去。
//1.键盘求入一个整数
Scanner sc = new Scanner(System.in);
System.out.println(”请输入一个整数");
int number = sc.nextInt();
//2.从1开始循环判断
//开始:1结束: number
for (int i = 1; i <= number; i++) {
	//用i* i再跟number进行比较
	if(i * i == number){
		system.out.println(i +"就是" +number +"的平方根");
	//一旦找到了,循环就可以停止了,后面的数字就不需要再找了,提高代码的运行效率。
		break;
	}else if(i * i > number){
		system.out.println((i - 1) +"就是"+number + "平方根的整数部分");
		break;

2.5、求质数

  • 需求:键盘录入一个正整数x,判断该整数是否为一个质数。
scanner sc = new Scanner(system.in) ;
system.out.println("请输入一个正整数");
int number = sc.nextInt();//9
//表示最初就认为number是一个质数
//标记作用
boolean flag = true;
//2.判断
//写一个循环,从2开始判断,一直判断到number-1为止
//看这个范围之内,有没有数字可以被number整除
for (int i = 2; i < number; i++) {
//i依次表示这个范围之内的每一个数字
//看number是否能被i整除就可以了
if(number % i == o){// 9 % 2 =1
	flag = false;
// system.out.println( number +“不是一个质数");
	break;
}/*else{
system.out.println( number +“是一个质数");}*/
}
//只有当这个循环结束了,表示这个范围之内所有的数字都判断完毕了
//此时才能断定number是一个质数
if(flag){
	system.out.println(number +"是一个质数");
	}else{
	system.out.println(number +"不是一个质数");
}

2.6、猜数字小游戏

  • 需求:程序自动生成一个1-100之间的随机数字,使用程序实现猜出这个数字是多少?
  • Java帮我们写好一个类叫Random,这个类就可以生成一个随机数。
    在这里插入图片描述
import java.util.Random;
import java.util.Scanner;
public class LoopTest7 {
public static void main(string[] args) {
//需求:程序自动生成一个1-100之间的随机数字,使用程序实现猜出这个数字是多少?
//分析
// 1.生成一个1-100之间的随机数字Random r = new Random( );
	int number = r.nextInt( bound: 100)+ 1;// 2.猜这个数字是多少
	Scanner sc = new scanner(System.in);while(true){
	System.out.println("请输入你要猜的数字");
	int guessNumber = sc.nextInt( );
/ /3 .判断两个数字给出不同的提示//猜的数字大了,提示大了
//猜的数字小了,提示小了//猜的数字一样,提示猜中了
	if(guessNumber > number){
		System.out.println("大了");
	}else if(guessNumber < number){
		System.out.println("小了");
	}else{
		System.out.println("猜中了");
		break;	
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值