day3 流程控制语句

条件语句

if条件语句

  • if条件语句主要用于告知程序当某一个条件成立时,须执行满足该条件的相关语句。
  • if语句 (单一条件)
    如果表达式值为true,则执行花括号的内容后,再执行后面的语句
    如果表达的值为false,则直接执行后面的语句
格式

if(表达式){
执行语句块
}

执行流程

在这里插入图片描述

if…else条件语句

  • if…else语句作用:针对某种条件有选择地做出处理
    • 如果布尔表达式的值为true,则执行语句1
    • 如果布尔表达式的值为false,则执行语句2
格式

if(表达式){
执行语句块1
}else{
执行语句块2
}

执行流程

在这里插入图片描述

if…else if条件语句

  • 如果满足某一个条件,就采用与该条件对应的处理方式;如果满足另一个条件,则采用与另一个条件对应的处理方法。
    if (表达式1){
    执行语句块1
    }else if(表达式2){
    执行语句块2}

    else {
    执行语句块n
    }
格式

if (表达式1){
执行语句块1
}else if(表达式2){
执行语句块2
}…
else {
执行语句块n
}

执行流程

在这里插入图片描述

switch语句

格式

switch(表达式){
case 取值1:
语句块1
break;
case 取值n:
语句块n
default;
语句块n+1
}

语句特点
  • 表达式的值值可以接受int、byte、char、short、String型
  • case后跟的值必须是常量,不能跟变量
  • 不允许有重复的case取值
  • switch一旦碰到第一次case匹配,程序就会跳转到这个标签位置,开始顺序执行直到碰到break关键字为止结束运行

常用功能

控制台输入

  • 可以通过控制台得到用户的输入(程序会等待用户输入后再继续执行):
    • 使用控制台输入,需要加入代码
      • import java.util.Scanner;
        new Scanner(System.in).nextInt():得到用户输入的整数new Scanner(System.in).nextDouble():得到用户输入的浮点数
        new Scanner(System.in).next():得到用户输入的字符串,空格结束

产生随机数

  • 随机数:在产生过程中是按照分布概率随机产生的,其结果是不可预测的。
  • 伪随机数:计算机中的随机函数是按照一定算法模拟产生的,因此称为伪随机数。
    使用随机数程序,需要加入代码import java.util.Random;
  • 产生随机数代码:new Random().nextInt(正整数);
    括号中的数字代表产生随机数的范围
    例如:如果数字为10,产生0到9之间的随机整数。

循环语句

Java中循环语句:
while语句
do…while语句
for语句
foreach语句
循环语句总结
for循环更适合使用在循环次数固定的语句中
while和dowhile更适合条件循环
while先判断再执行
dowhile先执行再判断条件
for循环使用最多

while循环

格式

while (条件表达式){
执行语句块
}

执行流程

在这里插入图片描述

do…while循环语句

格式

do{
执行语句块
} while(条件表达式 );

执行流程

在这里插入图片描述

for循环语句

关于for循环次数
看到 <,推断出次数是 (n-起始数) 次.
<= 在这个基础上 加 1次就好了
格式

for(初始化表达式;循环条件表达式;循环后的操作表达式){
执行语句块
}

执行流程

在这里插入图片描述

流程控制进阶

死循环语句

靠自身控制无法终止的程序称为“死循环”

while实现
while(true){
     System.out.println("x="+x);
}
for实现
for(int x=1;;x++){
    System.out.println("x="+x);
}
for(;;){
    System.out.println(“你好");
}
do…while实现
do{
     System.out.println("x="+x);
} while(true);
break中断
  • break语句用于终止某个语句块的执行。用在循环语句体中,可以强行退出循环。
  • “break;”语句:可以出现在while、do…while、for、语句中。

示例

int sum = 0;
for(;;){
      if(sum>=666){
          break; //stop
       }       
       sum = sum + 20;
}
System.out.println(“sum的值为:”+sum);
continue中断
  • continue语句用在循环语句体中,用于终止某次循环过程,跳过循环体中continue语句下未执行的循环,开始下一次循环过程
  • continue语句:只能出现在循环语句while、do…while、for中

示例

for(int i=1;i<50;i++) {
    if((i%2)==0){
          continue; // skip
    }
      System.out.print(i+" ");
}

练习

1、输入一个成绩a,使用if结构分别输出成绩等级。A:90-100,B:80-89,C:70-79,D:60-69,E:0~59(知识点:条件语句if )

import java.util.Scanner;
public class 练习1 {
// 1、输入一个成绩a,使用if结构分别输出成绩等级。
// A:90-100,B:80-89,C:70-79,D:60-69,E:0~59(知识点:条件语句if )
	public static void main(String[] args) {
		double a;
		Scanner sc = new Scanner(System.in);
		a = sc.nextDouble();
		if ( a<100&&a>90 ) {
			System.out.println("A");
		}else if ( a<89&&a>80 ) {
			System.out.println("B");
		}else if ( a<79&&a>70 ) {
			System.out.println("C");
		}else if ( a<69&&a>60 ) {
			System.out.println("D");
		}else if ( a<59&&a>0 ) {
			System.out.println("E");
		}else {
			System.out.println("成绩不合法");
		}
	}
}

2、判断一个随机整数是否能被5和6同时整除(打印能被5和6整除),或只能被5整除(打印能被5整除),或只能被6整除,(打印能被6整除),不能被5或6整除,(打印不能被5或6整除)(知识点:条件语句)

import java.util.Scanner;
public class 练习2 {
//2、判断一个随机整数是否能被5和6同时整除(打印能被5和6整除),
//	或只能被5整除(打印能被5整除),
//	或只能被6整除,(打印能被6整除),
//	不能被5或6整除,(打印不能被5或6整除)(知识点:条件语句)
	public static void main(String[] args) {
		int x;
		Scanner sc = new Scanner(System.in);
		x = sc.nextInt();
		if ( x%5==0&&x%6==0 ) {
			System.out.println(x+"能够同时被5和6整除");
		}else if ( x%5==0&&x%6!=0 ) {
			System.out.println(x+"只能被5整除");
		}else if ( x%5!=0&&x%6==0 ) {
			System.out.println(x+"只能被6整除");
		}else {
			System.out.println(x+"不能被5或6整除");
		}
	}
}

3、假设某员工今年的年薪是30000元,年薪的年增长率6%。编写一个Java应用程序计算该员工10年后的年薪。(知识点:循环语句for)

public class 练习3 {
// 3、假设某员工今年的年薪是30000元,年薪的年增长率6%。
//	编写一个Java应用程序计算该员工10年后的年薪。(知识点:循环语句for)
	public static void main(String[] args) {
		double salary = 30000;
		for (int i = 1; i <= 10; i++) {
			salary = salary+salary*0.06;
		}
		System.out.println("10年后年薪为"+salary);
	}
}

4、猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。(知识点:循环语句 ,逆向思维)

public class 练习4 {
// 4、猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,
//	第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
//	以后每天早上都吃了前一天剩下的一半零一个。
//	到第10天早上想再吃时,见只剩下一个桃子了。
//	求第一天共摘了多少。(知识点:循环语句 ,逆向思维
	public static void main(String[] args) {
		int t = 1;
		for (int i = 1; i <= 9; i++) { // 九天吃了九次
			t = (t+1)*2;
		}
		System.out.println("一共摘了"+t+"个桃子");
	}
}

5.switch 练习 输入季节,输出月份

import java.util.Scanner;
public class switch语句 {
	public static void main(String[] args) {
		// if适合一次只执行一个语句块结构
		// switch适合一次执行多个语句块结构
		
		String s;
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入季节");
		s = sc.next();
		
		switch (s) {
		case "春天":
			System.out.println("春天是三四五月");
			break; // 不加break会一直向下执行知道遇到break
		case "夏天":
			System.out.println("夏天是六七八月");
			break;
		case "秋天":
			System.out.println("秋天是九十十一月");
			break;	
		case "冬天":
			System.out.println("夏天是一二十二月");
			break;	
		default: // 都不符合
			System.out.println("季节输入不正确");			
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值