JAVA键盘录入 分支结构if swtich语句+循环结构for while语句 练习

JAVA键盘录入 分支结构if swtich语句+循环结构for while语句 练习

今天学习的三个点,键盘录入 分支结构和循环结构。感觉这些还是得通过实操大量题目后才便于理解,前期只听教师讲解和死背公式的话,运用时还是很懵懂的 Day03

键盘录入

在程序执行过程中,可以让用户输入些数据,把这些数据储存到变量中,之后根据需要可以把这些数据进行运算。

录入步骤

导包 在类上方申明语句import java.util.Scanner;

创建录入对象 Scanner sc = new Scanner(System.in);

获取录入的数据int num = sc.nextInt();

举例

用户录入两个整数,求出两个整数的和

package Lianxi;
import java.util.Scanner;//导包
public class Lianxi1 {
   public static void main(String[] args) {
   	Scanner sca = new Scanner(System.in);//创建键盘录入对象
   	System.out.print("输入第一个数字:");//输入提示
   	int num1 = sca.nextInt();//调用nextInt()方法 接受用户录入的数据
   	System.out.print("输入第二个数字:");
   	int num2 = sca.nextInt();
   	int res = num1+num2;//把录入数据进行计算
   	System.out.print("两数的和为:"+res);
   }
}

在这里插入图片描述

分支结构

程序在执行时可能面对不同的情况作出不同的准备,每一种情况都是一个分支,程序需要根据判断来选择运行哪一个分支。

实现分支结构的格式

if语句

if语句 有三种表达式 特点是:代码多,执行少

格式一

​ if(布尔类型的表达式){

语句体();

​ }

布尔类型的表达式:指的是判断符合哪个条件,必须是boolean类型的数据。

语句体:表达的是选择执行某个情况.

执行流程

​ 计算布尔表达式的值,true或者false

​ 如果为true,就执行语句体

​ 如果为false,就不执行语句体

格式二

​ if(布尔条件表达式){

​ 语句体1

​ }else{

​ 语句体2

​ }

执行流程

​ 计算布尔表达式的值,true或者false

​ 如果为true,执行语句体1

​ 如果为false,执行语句体2

格式三

​ if(条件表达式1){

​ 语句体1

​ }else if(条件表达式2){

​ 语句体2

​ }else if(条件表达式3){

​ 语句体3

​ }…else{

​ 语句n

​ }

执行流程

​ 如果if后的条件表达式1的结果为true,那就执行语句体1结束分支

​ 如不满足就去判断之后的条件表达式2,如为true就执行语句体2 结束分支

​ 为false就判断条件表达式3,以此类推。。。。

​ 如果条件表达式都不满足就执行最后else的内容

举例

录入一个整数,如果是偶数就输出num是偶数,否则输出num是奇数

package Chating;
import java.util.Scanner;
public class Ex {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("请录入一个整数:");
		int num = sc.nextInt();
		if(num % 2 == 0) {//通过被2取余来判断是否为偶数
			System.out.println(num + "是偶数");
		}else {
			System.out.println(num + "是奇数");
		}
	}		 
}

在这里插入图片描述

switch语句

格式

​ switch(表达式){

​ case 常量1 :

​ 语句1;

​ break;

​ case 常量2:

​ 语句2;

​ break;

​ …

​ default:

​ 语句n;

​ break;

​ }

执行流程

​ 先获取switch后括号内表达式的值

​ 把值与下面的常量1进行匹配,如果相同就执行语句1,执行完break跳出

​ 如果不相同就与常量2进行匹配,相同就执行语句2再break跳出,反之则再往下匹配以此类推。

​ 如果和任意的常量值都不匹配,则执行default下的内容,最后break跳出。

注意

​ Case后只能+常量值 且不能重复

​ Default可以放在任意位置,也可以选择不写,不写则可能任意情况都不执行

​ 如果多个case的表达式的处理方法是一样 的,则可省略break,只写最后的一个break,这样可以节省代码量

举例

输入2020年的一个月份,输出当月的天数

package Chating;
import java.util.Scanner;
public class Ex {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("请输入年份:");
		int y = sc.nextInt();
		System.out.print("请输入月份:");
		int m = sc.nextInt();
		switch (m) {
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				System.out.println(y+"年"+m+"月有31天");
				break;
			case 4:
			case 6:
			case 9:
			case 11:
				System.out.println(y+"年"+m+"月有30天");
				break;
			case 2 :
				System.out.println(y+"年"+m+"月有29天");
				break;
			default:
				System.out.println("没有这个月份,请重新输入");
				break;
		}
	}		 
}

在这里插入图片描述

循环结构

对某些需要重复执行的相似语句,通过某种固定形式执行以此实现代码的简化

循环语句有三种:

​ for语句

​ while语句

​ do…while语句(不常用)

for语句

格式

​ for(初始化语句; 循环的条件表达式;初始化变量的改变){

循环体语句;

​ }

初始化语句:声明初始变量用来记录循环的次数

循环的表达式:布尔类型的表达式 表示循环执行的条件

初始化变量的改变:将初始化的变量进行变化,一般向着终止循环的方向变化

循环体语句:要重复执行的语句

**执行流程 **

​ 初始化变量—判断循环的条件表达式, false就结束for循环

​ true就执行循环体语句 执行初始变量值的变化 再回到第二步重复上面的操作

举例

打印1到100之内的整数,但数字中包含9的要跳过,每行输出10个满足条件的数,之间用换行

package Chating;
import java.util.Scanner;
public class Ex {
	public static void main(String[] args) {
		int c=0;//计数器
		for (int i = 1; i <= 100; i++) {//从1开始,每次循环打印1+=1,直到等于100
			if (i%10!=9 && i/10%10!=9) {//同时满足 个位取余10不为9 和 十位取余10不为9 就打印
				System.out.print(i+" ");
				c++;//每打印一个数 计数器就累加+1
				if (c%10==0) {//当计数器为10或者10的倍数
					System.out.print("\n");//打印换行
				}
			}
		}
	}		 
}

在这里插入图片描述

while语句

格式

​ while(循环条件表达式){

循环体语句;

初始化变量的改变;

​ }

执行流程

​ 判断条件表达式 是false就终止循环

​ 是true就执行循环体结构 初始化变量的改变 回到第二步

注意

​ 注意初始化变量的自增,避免陷入死循环

举例

求出1-100之间所有偶数的和

package Chating;
import java.util.Scanner;
public class Ex {
	public static void main(String[] args) {
		int num =1;//初始化1
		int res =0;//初始化总和为0
		while (num<=100) {//当num小于等于100时执行循环
			if (num%2==0) {//通过取余判断是否是偶数
				res+=num;//是偶数则加入总和
			}
			num++;//每次循环计算好就累加
		}
		System.out.println("1-100之间所有偶数的和为"+res);
	}
}

在这里插入图片描述

死循环

无限循环,循环永远都不会停止

一般出现于程序漏洞或者可以制造

格式

​ for(;😉{

​ 循环体语句;

​ }

​ while(true){

​ 循环体语句;

​ }

死循环的作用:

​ 在格式上使用了死循环,但是在循环体中,可能出现需要结束循环的情况,准备了一些跳出、终止循环的跳转语句

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值