• 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组 合成能完成一定功能的小逻辑模块。
• 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:
顺序结构 分支结构 循环结构
1:顺序结构程序从上到下逐行地执行,中间没有任何判断和跳转。
2:分支结构根据条件,选择性地执行某段代码。
有if…else和switch-case两种分支语句。
if…else在这里插入图片描述
分支结构:if-else使用说明
条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量
语句块只有一条执行语句时,一对{}可以省略,但建议保留
if-else语句结构,根据需要可以嵌套使用 当if-else结构是“多选一”时,最后的else是可选的,根据需要可以省略
当多个条件是“互斥”关系时,条件判断语句及执行语句间顺序无所谓 当多个条件是“包含”关系时,“小上大下 / 子上父下”
class IfTest{
public static void main(String[] args) {
//举例1
int heartBeats = 79;
if(heartBeats < 60 || heartBeats > 100){
System.out.println("需要做进一步检查");
}
System.out.println("检查结束");
//举例2
int age = 23;
if(age < 18){
System.out.println("你可以看动画片");
}else{
System.out.println("你可以看成人电影");
}
//举例3
if(age < 0){
System.out.println("输入数据非法");
}else if(age < 18){
System.out.println("青少年时期");
}else if(age < 35){
System.out.println("青壮年时期");
}else if(age < 60){
System.out.println("青少年时期");
}else{
System.out.println("老年时期");
}
}
}
Scanner的使用
import java.util.Scanner;
class ScannerTest{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
System.out.println("num");
}
}
class ScannerTest{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = scan.next();
System.out.println(name);
System.out.println("请输入你的年龄:");
int age = scan.nextInt();
System.out.println(age);
System.out.println("请输入你的体重:");
double weight = scan.nextDouble();
System.out.println(weight);
//对于char型的获取,Scanner没有提供相关的方法,只能获取一个字符串
System.out.println("请输入你的性别:");
String gender = scan.next();
char genderChar = gender.charAt(0);//获取索引为0位置上的字符
System.out.println(genderChar);
}
}
if语句例题1
import java.util.Scanner;
class ScannerTest{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入期末成绩:");
int score = scan.nextInt();
if(score< 0 || score> 100){
System.out.println("输入数据非法");
}else if(score == 100){
System.out.println("奖励一辆BMW");
}else if(score > 80 && nscore <= 99){
System.out.println("奖励一台iphone xs max");
}else if(score > 60 && score<= 80){
System.out.println("奖励一个 iPad");
}
}
}
if语句例题2
import java.util.Scanner;
class IfTest2{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num1 = scan.nextInt();
System.out.println("请输入二个整数:");
int num2 = scan.nextInt();
System.out.println("请输入三个整数:");
int num3 = scan.nextInt();
if(num1 >= num2){
if(num3 >= num1){
System.out.println(num2 + "," + num1 + "," + num3);
}else if(num3 <= num2){
System.out.println(num1 + "," + num2 + "," + num1);
}else{
System.out.println(num2 + "," + num3 + "," + num1);
}
}else{
if(num3 >= num2){
System.out.println(num1 + "," + num2 + "," + num3);
}else if(num3 <= num1){
System.out.println(num3 + "," + num1 + "," + num2);
}else{
System.out.println(num1 + "," + num3 + "," + num2);
}
}
}
}
就近原则
class IfExer{
public static void main(String[] args) {
int x = 4;
int y = 1;
if (x > 2)
if (y > 2)
System.out.println(x + y);
//就近原则,和if (y > 2) 配对
else
System.out.println("x is " + x);
}
}
如何获取一个随机数(彩票游戏)
//如何获取一个随机数:10 - 99 double value = (int)(Math.random()*90 + 10);//[0.0,1.0)--[0.0,90.0)--[10.0,100.0) //公式:[a,b] :(int)(Math.random()*(b - a + 1) + a)
if语句练习3
获取char数值和char型转int型的方法(equals的用法)
import java.util.Scanner;
class IfExer{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
double value = (int)(Math.random()*90 + 10);//获取一个[10,99)的值
int value1 = (int)value;
System.out.println("请输入一个二位数的数字:");
String gender = scan.next();
char genderChar = gender.charAt(0);//获取索引为0位置上的字符
char genderChar1 = gender.charAt(1);//获取索引为0位置上的字符
int num1 = genderChar - '0';//把char类型变量转换成int变量
int num2 = genderChar1 - '0';
System.out.println(num1);
System.out.println(num2);
if(num1 == value1/10 && num2 == value1%10){
System.out.println("奖金10000美元");
}else if(num2 == value1/10 && num1 == value1%10){
System.out.println("奖金3000美元");
}else if(num1 == value1/10 || num2 == value1%10){
System.out.println("奖金500美元");
}else if(num2 == value1/10 || num1 == value1%10){
System.out.println("奖金500美元");
}else{
System.out.println("彩票作废");
}
System.out.println(value1);
System.out.println(value1/10);
System.out.println(value1%10);
}
}
import java.util.Scanner;
class IfTExer{
public static void main(String[] args) {
Scanner Scanner = new Scanner(System.in);
System.out.println("请输入你的身高:(cm)");
int height = Scanner.nextInt();
System.out.println("请输入你的财富:(千万)");
double money = Scanner.nextDouble();
System.out.println("请输入你是否帅:(是/否)");
String isHandsome = Scanner.next();
if(height >= 180 && money >= 1.0 && isHandsome.equals("是")){
System.out.println("我一定要嫁给他!!!");
}else if(height >= 180 || money >= 1.0 || isHandsome.equals("是")){
System.out.println("嫁吧,比上不足,比下有余。");
}else{
System.out.println("不嫁!");
}
}
}
switch-case
class SwitchCaseTest{
public static void main(String[] args) {
//int类型
int number = 2;
switch(number){
case 0:
System.out.println("zero");
break;
case 1:
System.out.println("one");
break;
case 2:
System.out.println("two");
break;
case 3:
System.out.println("three");
break;
default:
System.out.println("other");
}
//String类型
String season = "summer";
switch(season){
case "spring":
System.out.println("春暖花开");
break;
case "summer":
System.out.println("夏日炎炎");
break;
case "autumn":
System.out.println("秋高气爽");
break;
case "winter":
System.out.println("白雪皑皑");
break;
default:
System.out.println("输入季节有误");
break;
}
}
import java.util.Scanner;
class SwitchCaseTest{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int score = 78;
switch(score/10){
case 0:
System.out.println("不及格");
break;
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;
case 8:
System.out.println("及格");
break;
case 9:
System.out.println("及格");
break;
case 10:
System.out.println("及格");
break;
default:
System.out.println("other");
break;
}
}
}
//改写 说明:如果switch-case结构中的多个case的执行语句相同,则可以合并
int score = 78;
switch(score/10){
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("不及格");
break;
case 6:
case 7:
case 8:
case 9:
case 10:
System.out.println("及格");
break;
}
//优化
switch(score/60){
case 0:
System.out.println("不及格");
break;
case 1:
System.out.println("及格");
break;
}
import java.util.Scanner;
class SwitchCaseTest{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入2019年的month");
int month = scan.nextInt();
System.out.println("请输入2019年的day");
int day = scan.nextInt();
int days = 0;
switch(month){
case 12:
days += 30;
case 11:
days += 31;
case 10:
days += 30;
case 9:
days += 31;
case 8:
days += 31;
case 7:
days += 30;
case 6:
days += 31;
case 5:
days += 30;
case 4:
days += 31;
case 3:
days += 28;
case 2:
days += 31;
case 1:
days += day;
}
System.out.println("2019年的第:"+ days + "天");
}
}
import java.util.Scanner;
class SwitchCaseTest{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入year:");
int year = scan.nextInt();
System.out.println("请输入month:");
int month = scan.nextInt();
System.out.println("请输入day:");
int day = scan.nextInt();
int days = 0;
switch(month){
case 12:
days += 30;
case 11:
days += 31;
case 10:
days += 30;
case 9:
days += 31;
case 8:
days += 31;
case 7:
days += 30;
case 6:
days += 31;
case 5:
days += 30;
case 4:
days += 31;
case 3:
if((year%4 == 0 && year/100 != 0)||(year%400 == 0)){
days += 29;
}else{
days += 28;
}
case 2:
days += 31;
case 1:
days += day;
}
System.out.println(year + "年的第:" + days + "天");
}
}
import java.util.Scanner;
class SwitchCaseTest{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入year:");
int year = scan.nextInt();
int test = year%12;
System.out.println(test);
switch(year%12){
case 0:
System.out.println("monkey");
break;
case 1:
System.out.println("rooster");
break;
case 2:
System.out.println("dog");
break;
case 3:
System.out.println("pig");
break;
case 4:
System.out.println("rat");
break;
case 5:
System.out.println("ox");
break;
case 6:
System.out.println("tiger");
break;
case 7:
System.out.println("rabbit");
break;
case 8:
System.out.println("dragon");
break;
case 9:
System.out.println("snake");
break;
case 10:
System.out.println("horse");
break;
case 11:
System.out.println("sheep");
break;
}
}
}
3:循环结构
根据循环条件,重复性的执行某段代码。
有while、do…while、for三种循环语句。
注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素。



