java的选择结构与循环

本文详细介绍了Java编程中的if选择结构,包括基本用法、流程图解析、如何使用if-else和多重if结构。此外,还讨论了switch结构的优势以及while循环的应用,展示了如何在不同场景下灵活运用这些控制结构来实现特定的逻辑功能。
摘要由CSDN通过智能技术生成

if结构

什么是if选择结构

if选择结构是根据条件判断之后再做处理的一种语法结构

执行代码

if(条件){
    //为真执行的内容,可以是一条语句,也可以是一组语句
}

流程图

这是代码的图形化表示,称为流程图,综合流程图来看选择结构的含义和执行过程就一目了然了

程序执行时,先判断条件,当结果为true时,程序先执行大括号里的代码块,结果为false时,不执行大括号里的代码块,而直接执行if结构后面的代码

public class Demo{
    public static void main(String[] args){
        //语句1
        //语句2
        if(条件){
           //语句3
        }
        //语句4
    }
}

在main()中的语句将逐条执行,因此程序开始执行后首先执行语句1和语句2,然后判断条件。如果条件成立,执行语句3,再执行语句4。如果条件不成立直接执行语句4。

如何使用if选择结构

package Testif;
​
import java.util.Scanner;
​
public class Test1 {
​
    public static void main(String[] args) {
        /*if格式1:
         * 
         *    if(条件==true){
         *          //为真执行
         *    }
         * 
         */
        //要求:如果张浩的Java考试成绩大于98分,张浩就能获得一个MP4作为奖励
        //步骤:
        //1.创建扫描器
        //2.声明分数变量
        //3.提示用户输入成绩
        //4.成绩通过扫描器保存到分数变量
        //5.判断分数变量是否大于98
        //6.如果判断是真(成立),打印奖励信息
        
        Scanner input = new Scanner(System.in);  //创建扫描器
        double score = 0;  //默认值
        System.out.print("输入张浩的Java成绩:");  //提示用户输入
        score = input.nextDouble();  //保存输入内容
        System.out.println("测试:"+score);  //输出用户输入
        
            if(score>98) {  //if的开始符号
                System.out.println("奖励mp4");    //  只有score>98为真,才会输出
            }   //if的结尾符号
            System.out.println("程序结束!");
        }
​
}

复杂条件下的if选择结构

package Testif;
​
import java.util.Scanner;
​
public class Test2 {
​
    public static void main(String[] args) {
        // 张浩的Java成绩大于98分,而且音乐成绩大于80分,老师会奖励他;或者Java成绩等于100分,音乐成绩大于70分,老师也会奖励他
        //分析:
        //条件1:Java成绩>98
        //条件2:音乐成绩>80
        //条件1和条件2都成立:(java>98)和(音乐>80)
        //用程序表示:(Java>98)&&(音乐成绩>80)
        
        //条件3:java==100
        //条件4:音乐>70
        //条件3和条件4都成立:(java==100)和(音乐>70)
        //用程序表示:(java==100)&&(音乐>70)
        
        //条件1和条件2成立 或者 条件3和条件4成立
        //((Java>98)&&(音乐成绩>80))||((java==100)&&(音乐成绩>70))
        //简化:(Java>98 && 音乐成绩>80)||(java==100 && 音乐成绩>70)
        Scanner input = new Scanner(System.in);
        int javaScore = 0;
        System.out.print("请输入Java成绩:");
        javaScore = input.nextInt();
        int musicScore = 0;
        System.out.print("请输入音乐成绩:");
        musicScore = input.nextInt();
        
        if((javaScore>98 && musicScore>80) || (javaScore==100 && musicScore>70)){
            System.out.println("老师说:成绩不错奖励一个mp4");
        }else if(javaScore>= 80 && musicScore>=80){
            System.out.println("A");
        }else if((javaScore >=70) && (musicScore >=70.0)) {
            System.out.println("B");
        }else if(javaScore >=60 && musicScore >= 60) {
            System.out.println("及格了");
        }else {
            System.out.println("c");
        }
    }
}
 

常用逻辑运算符

运算符汉语名称表达式说明
&&与,并且条件1 && 条件2两个条件同时为真, 则结果为真;两个条件同时为假, 则结果为假。
||或,或者条件1 || 条件2两个条件一个为真, 则结果为真;两个条件同时为假, 则结果为假。
!=!条件条件为真时,结果为假;条件为假时,结果为真。

使用if - else选择结构

在有两个执行条件的情况,使用两个if选择结构冗长,实际上有一种更简单的语法结构可以更好的解决这个问题,就是if - else选择结构,表示“如果xxx,就xxx,否则,就xxx”。

if - else选择结构如下:

if(条件){
    //代码块
}else{
    //代码块
}

if - else选择结构流程图

使用if - else解决问题:

package ifelsetest;
​
import java.util.Scanner;
​
public class Testifelse {
​
    public static void main(String[] args) {
        /*
         * if结构2:if else
         * if(条件==true){
         *          //条件为真执行程序
         * }else{
         *          //条件为假执行程序
         * }
          */
        //题目:题目:如果张浩Java考试成绩大于98分,老师就奖励他一个MP4,否则老师就罚他进行编码
        //步骤
        //1.声明变量保存java成绩
        //2.if判断java成绩是否大于98
        //3.如果条件为真:奖励
        //4.如果条件为假:惩罚
        Scanner iput = new Scanner(System.in);
        double javaScore = 0;
        System.out.println("请输入成绩:");
        javaScore = iput.nextDouble();
                
        if(javaScore>98) {
            System.out.println("奖励一个mp4");
        } else{
            System.out.println("老师说:你去重新写编码!!");
          }
    }
}

多重if选择结构

多重if结构对判断连续条件有很大优势

语法如下

if(条件1){
    //代码块1
}else if(条件2){
    //代码块2
}else{
    //代码块3
}

多重if选择结构的执行

首先程序判断条件1,如果成立就执行代码块1,不成立就判断条件2,若条件2成立,就执行代码块2,若两个都不成立则运行代码块3

else条件最多一个或者没有,else必须放在else if以后

使用多重if选择结构

package ifelsetest;
​
public class Test2 {
​
    public static void main(String[] args) {
        /*
         * if结构3,elseif
         *  if(条件1){
         *      //
         *  }else if(条件2){
         *  
         *  }else if(条件2){
         *  
         *  }else if(条件3){
         *  
         *  }else(其他条件){
         *  
         *  }
         */
        //要求:成绩>=80:良好;成绩>=60:中等;成绩<=60:差
        //步骤:
        //1.声明一个变量分数
        //2.用if判断条件1
        //3.用else if判断条件2
        //4.用else判断其他条件
        double score = 75;  //75分
        
        if(score>=80) {                 //条件1:80~100之间
            System.out.println("优秀");
        }else if(score>=60){            //条件2:60~80之间
            System.out.println("中等");
        }else {                                 //条件3:60以下
            System.out.println("不及格");
        }
        
        //扩展第二种,小于符号也可以从小到大
        if(score<60) {                  //条件1:60以下
            System.out.println("不及格");
        }else if(score<=80){            //条件2:60到80之间
            System.out.println("中等");
        }else {                                 //条件3:80以上
            System.out.println("优秀");
        }
    }
}

嵌套if结构

嵌套if结构就是在if结构里再嵌入if结构

流程图如下

基本语法为

if(条件1){
    if(条件2){
        //代码块1
    }else{
        //代码块2
    }
}else{
    //代码块3
}

嵌套if的使用

package logic;

import java.util.Scanner;

public class Logic03 {

	public static void main(String[] args) {
			
		Scanner input = new Scanner(System.in);
		System.out.println("请输入你出行的月份(1~12)");
		int month = input.nextInt();
		System.out.println("请问您选择头等舱还是经济舱?头等舱输入1,经济舱输入2");
		int num = input.nextInt();
		
		int money = 4000;
		
		if((10>=month) && (month>=4)) {
			if(num == 1) {
				System.out.println("您的机票价格为"+(money*0.9));
			}else if(num == 2) {
				System.out.println("您的机票价格为"+(money*0.75));
			}else {
				System.out.println("座位选择错误");
			}
		}else if((month<=12) || (month<=4)){
			if(num == 1) {
				System.out.println("您的机票价格为"+(money*0.6));
			}else if(num == 2) {
				System.out.println("您的机票价格为"+(money*0.3));
			}else {
				System.out.println("座位选择错误");
			}
		}else {
			System.out.println("月份格式错误");
		}
		input.close();
	}

}

switch结构

为什么使用switch结构

判等问题,switch结构会比if结构更加简单

语法

switch(表达式){
        case 常量1:
        //代码块1
        break;
        ......
    default:
        //代码块n
        break;
}

Java switch结构中的关键字

switch:开关。(这个开关就是小括号里的值)

case:情况,情形。

default:表示默认,及其他情况都不满足。

break:表示停止,即跳出当前结构

使用switch选择结构

package switch01;

public class TestSwitch {

	public static void main(String[] args) {
		// 使用switch选择结构解决韩嫣获奖问题
		//		如果是第一名,将参加麻省理工大学组织的1个月夏令营
		//		如果是第二名,将奖励惠普笔记本电脑一个
		//		如果是第三名,将奖励移动硬盘一个
		
		//步骤:
		//1.声明变量保存名词
		//2.使用if语句实现名次的判等
		
		int i = 1;		//假定获取的名词
		if(i == 1)	{	//数值判等用 == 
			System.out.println("夏令营");
		}else if(i == 2) {
			System.out.println("笔记本一部");
		}else if(i == 3) {
			System.out.println("硬盘一个");
		}else {
			System.out.println("未获奖");
		}
		
		//换成switch写法
		switch(i) {		//根据i的值判等
		case 1 :			//当i为1的情况
				System.out.println("夏令营"); 
				break;		//中断退出switch
		case 2:
				System.out.println("笔记本一部");
				break;
		case 3:
				System.out.println("硬盘一个");
				break;
		default:
				System.out.println("未获奖");
				break;
		}
		System.out.println("程序结束");
		
		
	}

}

switch结构的使用完全可以用if,但是判断相等的结构switch的更加直观

While循环结构

在什么条件成立时不断地做什么事情

如:

打印50份试卷

循环条件——打印50份试卷,在打印试卷不足50份的时候就继续打印

循环操作——打印1分试卷,打印总份数+1。


万米长跑

循环条件——跑步的距离不足10000m,就继续跑

循环操作——跑一圈,跑过的举例增加400m


做100道编程题

循环条件——做编程题不足100道就继续做

循环操作——完成一道题目,完成一道题目的总数加1

什么是while循环

while循环分为循环条件和循环操作

结构语法:

while(循环条件){
    //循环操作
}

流程图

while的运用 

package while01;
​
public class TestWhile {
​
    public static void main(String[] args) {
        //  循环打印10次
        //      步骤
        //      1   声明变量:记录次数
        //      2   循环的条件:从1循环到10(10次)i<10
        //      3   i自增:i++(每执行一次打印,i+1,习惯使用后自增)
        int  i = 1;     //默认值从1开始
        while (i<=10) {     //循环条件          //最后一步是i = 1
            System.out.println(i+"次");
            
            //写在尾部:等操作结束后,再计数
            i++;        //增加计数1
        }       //      while的结尾
​
    }
​
}

随机数字(幸运数)

package ex;
​
import java.util.Random;
​
public class Testran {
​
    public static void main(String[] args) {
        //      随机数(中奖,幸运数)
        //      推荐使用Random
        //      如何获取一个随机数
        
        Random rand = new Random();     //          创建随机数
        double num = rand.nextDouble();
        System.out.println("num是"+num);
        
        //      可以使用获取整数(int)
        int num2 = rand.nextInt();
        System.out.println("num2是:"+num2);
        
        //      限定范围(int)
        int num3 = rand.nextInt(10);        //      随机数的范围是0~9
        System.out.println(num3);
        
        //      循环打印10个随机数
        int i = 0;
        while(i<=10) {
            System.out.println("打印第"+i+"随机数是"+rand.nextInt(10));
            i++;
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值