第三节 选择结构-if语句-Switch语句
1.流程控制
1.1 流程控制语句概述
1.2 流程控制语句分类
- 顺序结构
- 分支结构(if,switch)
- 循环结构(for、while、do…while)
1.3顺序结构
顺序结构是程序代码中最简单最基本的流程控制,没有特定的语法结构,按照代码先后顺序,依次执行,程序中大多数的代码都是这样执行的。
2.if语句
2.1 if语句格式1
2.2 if语句格式2
public class IfDemo{
public static void main(String[] args){
System.out,println("开始")
//定义两个变量
int a = 10;
int b = 20;
//需求:判断a是否大于b;如果是,在控制台输出:a的值大于b;如果不是,在控制台输出:a的值不大于b
if(a > b){
System.out.println("a的值大于b");
}else{
System.out.println("a的值不大于b");
}
//输出
System.out,println("结束")
}
}
案例
需求:任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数。
分析:
-
为了体现任意给出一个整数,采用键盘录入一个数据
-
使用键盘录入功能需要导包
import java.util.Scanner;
-
创建对象
Scanner sc = new Scanner(System.in);
-
接收数据
int number = sc.nextInt();
-
-
判断整数是偶数还是奇数要分两种情况进行判断,使用if…else结构
-
if(条件语句){ 语句体1 }else{ 语句体2 }
-
-
判断是否是偶数需要使用取余运算符实现该功能number % 2 ==0
if (number % 2 == 0){ 语句体1 }else{ 语句体2 }
-
根据判定情况,在控制台输出对应的内容
if (number % 2 == 0 ){ System.out.println(number+"是偶数。") }else{ System.out.println(number+"是奇数。") }
-
整体代码
//导包 import java.util.Scanner public class IfTest01{ public static void main (String [] args){ //创建对象 Scanner sc = new Scanner(System.in); System.out,println("请输入一个整数:") //接收数据 int number = sc.nextInt(); //判断整数的奇偶性 if (number % 2 == 0 ){ System.out.println(number+"是偶数。") }else{ System.out.println(number+"是奇数。") } } }
2.3 if 语句格式3
执行流程:
- 首先计算关系表达式1的值
- 如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
- 如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
- …
- 如果没有任何关系表达式为true,就执行语句体n+1。
import java.util.Scanner;
public class IfDemo03{
public static void main(String[] args){
System.out.println("开始");
//需求:键盘录入一个星期数(1,2,...7),输入对应的星期一,星期二,....星期日
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个星期数(1-7):");
int week = sc.nextInt();
if(week == 1){
System.out.println("星期一");
}else if(week == 2){
System.out.println("星期二");
}else if(week == 3){
System.out.println("星期三");
}else if(week == 4){
System.out.println("星期四");
}else if(week == 5){
System.out.println("星期五");
}else if(week == 6){
System.out.println("星期六");
}else{System.out.println("星期日")
}
System.out.println("结束")
}
}
案例(考试奖励)
分析:
- 小明的考试成绩未知,可以使用键盘录入的方式获取值使用键盘录入需要导包,创建对象,接收数据
- 由于奖励种类较多,属于多种判断,采用if…else…if格式实现
- 为每种判断设置对应的条件
- 为每种判断设置对应的奖励
- 数据测试:正确数据、边界数据、错误数据
if(score >=100 || score <= 0){
System.out.println
}
3. switch语句格式
3.1 switch语句格式
格式说明:
- 表达式:取值为byte、short、int、char,JDK5 以后可以是枚举,JDK7以后可以是String。
- case:后面跟的是要和表达式进行比较的值
- break:表示中断,结束的意思,用来结束Switch语句
- default:表示所有情况都不匹配的时候,就执行该处内容,和if语句的else相似。
执行流程:
- 首先计算表达式的值。
- 依次和case后面的值进行比较,如果有对应的值,就会执行响应的语句,在执行过程中,遇到break就会结束。
- 如果所有的case后面的值和表达式都不匹配,就会执行default里面的语句体,然后程序结束掉。
import java.util.Scanner;
public class Switch{
public static void main(String[] args) {
System.out.println("开始");
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数(1-7):");
int week = sc.nextInt();
switch(week){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("你输入的星期数有误!");
System.out.println("结束");
}
}
}
案例:春夏秋冬
分析:
第七节 循环语句
1. for循环语句
1.1 循环语句
特征:
- 重复做某件事情
- 具有明确的开始和停止标志
1.2 for循环语句格式
public class ForDemo {
public static void main(String[] args){
//用循环语句
for (int i=1;i<=5;i++){
System.out.println("Hello world!");
}
}
}
案例:求和
public class SumDemo{
public static void main(String[] args){
int sum = 0;
for (int i=1;i<=5;i++){
sum +=i;
}
System.out.println("1-5之间的数据之和:"+sum);
}
}
案例:求偶数和
/*
求偶数和
需求:
求1-100之间的偶数和,并把求和结果在控制台输出
*/
package JavaBasic;
public class SumDemo01{
public static void main(String[] agrs){
//求和的最终结果必须保存起来,需要定义一个变量,用于保存求和结果,初值为0
int sum = 0;
//对1-100的数据就和与1-5的数据求和几乎完全一样,仅仅是结束条件不同
for (int i = 0; i <= 100; i++){
//对1-100的偶数求和,需要对求和操作添加限制条件,判断是否是偶数
if(i % 2 ==0){
sum += i;
}
}
//当循环执行完毕时,将最终数据打印出来
System.out.println("1-100之间的总数和是:"+ sum);
}
案例:水仙花
package JavaBasic;
public class shuixianhua {
public static void main(String[] args){
//for (int i = 100;i <= 999; i++);
for (int i = 100; i < 1000; i++){
int ge = i %10;
int shi = i /10 %10;
int bai = i /10/10% 10;
if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i){
System.out.println(i);
}
}
}
}
2. while
2.1 while 循环语句格式
package JavaBasic;
public class WhileDemo {
public static void main(String[] args){
//需求在控制台输出五次
//for循环
for(int i = 1; i<=5 ;i++){
System.out.println("Hello World!");
}
System.out.println("____________");
//while 循环
int j = 1;
while(j<=5){
System.out.println("Hello World!");
j++;
}
}
}
案例:珠穆朗玛峰
package JavaBasic;
public class zhumulangmafeng {
public static void main(String[] args){
double paper = 0.1;
int zf = 8844430;
int count = 0;
while(paper <= zf){
paper *=2;
count++;
}
System.out.println("总折了"+count);
}
}
3. do…whlie循环语句
3.1 do…whlie循环语句格式
package JavaBasic;
public class dowihlieDemo {
public static void main(String[] args){
//需求:在控制台输出5次
for (int i=1;i<=5;i++){
System.out.println("Hello world!");
}
System.out.println("____________");
//do...whlie语句
int j = 1;
do{
System.out.println("Hello world!");
j++;
}while(j<=5);
}
}
4.三种循环的区别
5. 跳转控制语句概述
5.1 跳转控制语句概述
- continue 用于循环中,基于条件控制,跳过某次循环体内容执行,继续下一次执行
- break 用于循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环
package JavaBasic;
public class TiaoZhuan {
public static void main(String[] args){
for(int i = 1;i <=5 ;i++){
if(i%2 ==0){
//continue;
break;
}
System.out.println(i);
}
}
}
6. 循环嵌套
6.1 循环嵌套概述
package JavaBasic;
public class XunhuanQiantaoDemo {
public static void main(String[] atgs){
//外循环控制小时的范围,内循环控制分钟的范围
for(int hour = 0; hour<24;hour++){
for(int minute = 0; minute<60;minute++){
System.out.println(hour+"时"+minute+"分");
}
System.out.println("-----------");
}
}
}
7. Random
7.1 Random 的作用和使用步骤
package JavaBasic;
import java.util.Random;
public class RandomDemo {
public static void main(String[] args){
//创建对象
Random r =new Random();
for(int i=0;i<10;i++ ){
int number = r.nextInt(101);
System.out.println(number);
}
}
}