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++;
}
}
}