java的选择结构与循环

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++;
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值