java入门学习总结_03

1、键盘录入

2、分支结构

键盘录入

概述

1、键盘录入:在程序运行的过程中,可以让用户录入一些数据,存储在内存的变量中,在后续的程序运行过程中,可以使用这些数据。

2、步骤:

第一步:导包,在类声明的上面,import java.util.Scanner;

第二步:创建键盘录入对象,Scanner sc = new Scanner(System.in);

第三步:调用sc对象的nextInt方法,获取键盘录入的整数

int x = sc.nextInt();(next接着基本类型:如nextDouble()等)

第四步:使用x后续处理

代码示例

1//导包 2 3import java.util.Scanner; 4 5class Demo_1 { 6 7//键盘录入 8 9public static void main(String[] args) { 10 11// 创建键盘录入对象 12 13Scanner sca_12 = new Scanner(System.in); 14 15//调用对象中的nextInt() 方法 16 17int a = sca_12.nextInt(); 18 19int b = sca_12.nextInt(); 20 21System.out.println(a*b); 22 23} 24 25}

练习1

键盘录入两个整数,计算两个整数的和

代码示例

练习2

键盘录入三个整数,输出三个整数的最大值

代码示例

1import java.util.Scanner; 2 3class Demo_2 { 4 5public static void main(String[] args) { 6 7//键盘录入三个整数,输出三个整数的最大值 8 9Scanner sc = new Scanner(System.in); 10 11System.out.println("请输入第一个整数"); 12 13int a = sc.nextInt(); 14 15System.out.println("请输入第二个整数"); 16 17int b = sc.nextInt(); 18 19System.out.println("请输入第三个整数"); 20 21int c = sc.nextInt(); 22 23// int abMax = a > b ? a : b; 24 25// int max = abMax > c ? abMax : c;三目运算符的一种用法 26 27int max = (a > b ? a : b) > c ? (a > b ? a : b) : c; 28 29System.out.println("三个整数的最大值为:"+max); 30 31} 32 33}
练习3

键盘录入一个整数,判断该数字的奇偶

例如,输出:该数字是25,是一个奇数

代码示例

1import java.util.Scanner; 2 3class Demo_3 { 4 5public static void main(String[] args) { 6 7//键盘录入一个整数,判断该数字的奇偶 8 9Scanner sc = new Scanner(System.in); 10 11System.out.println("请输入一个数字"); 12 13int a = sc.nextInt(); 14 15//String str = a % 2 == 1 ? "奇数" : "偶数" ; 16 17String str = a % 2 == 0 ? "偶数" : "奇数" ; 18 19System.out.println(a+"是"+str); 20 21} 22 23}

分支结构

流程控制

1、在一个程序中,有很多的代码,代码的执行顺序,就是流程。

2、用于控制代码流程的方式,就是流程控制 就是控制代码的执行顺序

3、流程控制的分类:

顺序结构:代码从上到下,从左到右依次执行(重点)

分支结构:到达某个状态时,可能会有多种情况,每种情况都需要提前准备好,所以多条路的路口就是一个分支。代码写得多,程序运行的少。(重点)

循环结构:某段代码相同或者相似,使用相同的逻辑。使用一定的格式,来完成相同代码的反复执行。代码写的少,程序运行次数多。(重点)

分支结构概述

1、到达某个状态时,可能会有多种情况,每种情况都需要提前准备好,所以多条路的路口就是一个分支。代码写得多,程序运行的少。

2、实现格式:

if语句:if是如果的意思,满足了这种条件,才能执行相应的代码,实现不同的逻辑

if

if...else

if...else if...else if....else

switch语句:根据某个变量的值,判断符合哪种执行条件

if语句的第一种格式

1、格式:

if (布尔表达式) {

语句体;

}

2、说明:

1、if语句后面跟着的小括号,里面必须是boolean类型的值;if语句后面的小括号中,只要是计算结果为boolean类型,就合法(合法不代表就有意义)

2、语句体,可以是任意操作

3、执行流程:

1、计算布尔表达式的值,要么为true、要么为false

2、如果计算结果为true,执行语句体

3、如果计算结果为false,就不执行语句体

说明只有布尔表达式结果为true才会执行判断语句{  }里面的代码

代码示例

1import java.util.Scanner; 2 3class Demo_5 { 4 5public static void main(String[] args) { 6 7//if语句的第一种格式 8 9// if (布尔表达式){ 语句体; } 10 11Scanner sc = new Scanner(System.in); 12 13int aa = sc.nextInt(); 14 15if (aa> 10) { 16 17System.out.println(4); 18 19int a = 1; 20 21a++; 22 23System.out.println(a); 24 25if(false){ 26 27System.out.println("我是里面的if语句"); 28 29} 30 31} 32 33System.out.println("if语句管不到我"); 34 35} 36 37}
If语句的注意事项

1、if后面跟着的小括号里面,必须是boolean的值

2、if后面跟着的小括号里面,只要计算结果为boolean类型,就算合法

3、在小括号后面不要加分号,一般来说,有左大括号,就没有分号,有分号,就没有左大括号

4、语句体:可以是任意语句。如果语句体只有一句,那么大括号可以省略。但是建议所有情况都加上大括号,不要省略

代码示例

1class Demo_6 { 2 3public static void main(String[] args) { 4 5//if语句的注意事项 6 7if(true/*只能写true 或者false ,表达式的值的结果类型为boolean*/){ 8 9System.out.println(1); 10 11} 12 13boolean b = false; 14 15if(b = true){ 16 17System.out.println(b); 18 19} 20 21if(b = false)/*;不能加分号*/{ 22 23System.out.println(";"+b); 24 25} 26 27// 28 29System.out.println("---------"); 30 31if(b = true) 32 33//if语句中如果只有一行代码,可以省略大括号,但是不建议大家省略 34 35System.out.println(b); 36 37System.out.println("if你能管到我吗"); 38 39} 40 41}
if语句的第二种格式

1、格式:

if (条件表达式) {

语句体1;

} else {

语句体2;

}

2、说明:

1、是否有某种情况,可以语句体1和语句体2都不执行?不可能,else就已经包含了if不满足的所有状态

2、是否有某种情况,可以让语句体1和语句体2都执行?不可能,因为只要语句体1执行了,if语句就直接结束了

3、只能执行其中的一句,并且一定会执行其中一句

3、执行流程:

1、计算条件表达式的值,要么是true、要么是false

2、如果条件表达式的值为true,执行语句体1

3、如果条件表达式的值为false,执行语句体2

代码示例

1import java.util.Scanner; 2 3class Demo_7 { 4 5public static void main(String[] args) { 6 7//if语句的第二种格式 8 9/*if(布尔表达式){ 10 11语句体1 12 13 }else { 14 15语句体2 16 17 }*/ 18 19System.out.println("请输入你的年龄"); 20 21Scanner sc = new Scanner(System.in); 22 23int age = sc.nextInt(); 24 25//先判断表达式的结果,如果为true执行语句体1 26 27//如果为false执行语句体2 28 29//思考:有没有可能语句体1和语句体2.都执行,或都不执行? 30 31if(age >= 18){ 32 33//语句体1; 34 35System.out.println("可以观看此电影"); 36 37}else{ //else 其他的,已经包含了不满足if判断的其他的所有情况 38 39//语句体2; 40 41System.out.println("未成年人禁止观看"); 42 43} 44 45//if ....else至少要执行一个语句体 46 47} 48 49}
if语句的第三种格式

1、格式:

if (条件表达式1) {

语句体1;

} else if (条件表达式2) {

语句体2;

} else if (条件表达式3) {

语句体3;

}

...

} else if (条件表达式n) {

语句体n;

} else {

语句体n+1;

}

2、执行流程:

1、计算条件表达式1,如果为true,就执行语句体1,if语句结束

2、如果条件表达式1为false,计算条件表达式2,如果为true,就执行语句体2,if语句结束

3、如果条件表达式2位false,就计算条件表达式3.......

4、如果条件表达式1~条件表达式n全都为false,那么就执行语句体n+1

3、说明:

1、如果条件表达式2计算结果为true,执行语句体2(其实这个条件的完整版本:条件表达式1不满足,并且条件表达式2满足)

2、最后的else语句可以有也可以没有,如果有,就一定有执行的内容,如果没有就可能什么都执行不了

3、语句体1~语句体n+1是否有可能执行两句或者两句以上?不可能,只要其中一条语句执行了,if语句就结束了

4、语句体1~语句体n+1是否有可能一句都不执行?两种情况,如果没有else语句,就可能一个语句体都不执行;如果有else语句,就一定会执行其中的一句。

代码示例

1import java.util.Scanner; 2 3class Demo_8 { 4 5public static void main(String[] args) { 6 7//if语句的第三种格式 8 9/*if(布尔表达式1){ 10 11语句体1; 12 13}else if(布尔表达式2){ 14 15语句体2; 16 17}else if(布尔表达式3){ 18 19语句体3; 20 21}else if(布尔表达式4){ 22 23语句体4; 24 25}....... 26 27else if(布尔表达式n){ 28 29语句体n; 30 31}else{ 32 33语句体n+1; 34 35}*/ 36 37Scanner sc = new Scanner(System.in); 38 39System.out.println("选择你心仪的战队"); 40 41int a = sc.nextInt(); 42 43if(a == 1){ 44 45System.out.println("I like RNG"); 46 47}else if(a == 2){ 48 49System.out.println("I like IG"); 50 51}else if(a == 3){ 52 53System.out.println("I like FPX"); 54 55}else if(a == 4){ 56 57System.out.println("I like SKT"); 58 59}else if(a == 5){ 60 61System.out.println("I like DWG"); 62 63}else{//不加else有可能一个语句体都不执行,加上后至少要执行一个语句体 64 65System.out.println("垃圾游戏,我谁都不喜欢"); 66 67} 68 69} 70 71}
switch语句

1、switch:表示英文中的开关,每个条件都像一扇门,开着的,就可以执行,否则就到下一扇门判断。

2、格式:

switch (表达式) {

case 常量1:

语句体1;

break;

case 常量2:

语句体2;

break;

.........

case 常量n:

语句体n;

break;

default:

语句体n+1;

}

3、执行流程:

1、计算表达式的值,分别和各个常量匹配

2、如果和常量1匹配,那么久执行语句体1,break,switch语句就结束了

3、如果和常量1不匹配,那么就判断是否和常量2匹配,如果匹配就执行语句体2,break,switch语句就结束了

4、以此类推,如果常量1~常量n全都没有和表达式的值匹配,那么就执行default中的内容,switch语句结束。

代码示例

1import java.util.Scanner; 2 3class Demo_9 { 4 5public static void main(String[] args) { 6 7/* 8 9switch (表达式) { 10 11case 常量1: 12 13语句体1; 14 15break; 16 17case 常量2: 18 19语句体2; 20 21break; 22 23......... 24 25case 常量n: 26 27语句体n; 28 29break; 30 31default: 32 33语句体n+1; 34 35} 36 37*/ 38 39Scanner sc = new Scanner(System.in); 40 41System.out.println("请指定一个星期的数字"); 42 43int week = sc.nextInt(); 44 45switch(week){ 46 47case 1 : 48 49System.out.println("星期一"); 50 51break; 52 53case 2 : 54 55System.out.println("星期二"); 56 57break; 58 59case 3 : 60 61System.out.println("星期三"); 62 63break; 64 65case 4 : 66 67System.out.println("星期四"); 68 69break; 70 71case 5 : 72 73System.out.println("星期五"); 74 75break; 76 77case 6 : 78 79System.out.println("星期六"); 80 81break; 82 83case 7 : 84 85System.out.println("星期日"); 86 87default ://可以有,也可以没有,和else功能类似 88 89System.out.println("地球上没有你想要星期"); 90 91} 92 93} 94 95}
switch语句的注意事项

1、单词解释:

switch:开关;case:情况;break:破坏、退出;default:默认

2、表达式:

Jdk1.5之前:byte、short、char、int

Jdk1.5:枚举类型

Jdk7:String

3、case后面只能跟常量,不能跟变量

4、每个case的语句体后面,一定要跟上一个break语句,否则就无法结束switch语句,并且发生case穿透。Case穿透的利用:多个情况如果是相同的执行逻辑,那么就可以使用case穿透。

5、Default语句:可以写也可以不写。如果不写,就有可能一个语句都执行不到。建议把default语句加上。

6、Default语句可以写在任意位置,无论写在什么位置,都是最后去匹配,建议把default语句写在最后。

7、Switch语句结束的条件:碰到了break语句;碰到了右大括号

代码示例

1import java.util.Scanner; 2 3class Demo_10 { 4 5public static void main(String[] args) { 6 7//switch语句的注意事项 8 9Scanner sc = new Scanner(System.in); 10 11//System.out.println("请指定一个星期的数字"); 12 13//int week = sc.nextInt(); 14 15//char dou = 'c'; 16 17String dou = "ones"; 18 19switch( dou/*byte ,short ,char ,int ,String ,(枚举enum) */){ 20 21//case 1 : 22 23//case 'a' : 24 25default ://default语句可以放在任意的位置,无论放在那里都是最后去匹配的 26 27System.out.println("地球上没有你想要星期"); 28 29//break;//default方法中间,break不要省,否则发生case穿透问题 30 31case "one" : //case后面只能跟常量不能跟变量 32 33System.out.println("星期一"); 34 35break;//break不能省,如果省掉就发生case穿透问题 36 37//case 2 : 38 39//case 'b' : 40 41case "two" : 42 43System.out.println("星期二"); 44 45break; 46 47//case 3 : 48 49//case 'c' : 50 51case "three" : 52 53System.out.println("星期三"); 54 55break; 56 57//case 4 : 58 59//case 'd' : 60 61case "four" : 62 63System.out.println("星期四"); 64 65break; 66 67//case 5 : 68 69//case 'e' : 70 71case "five" : 72 73System.out.println("星期五"); 74 75break; 76 77//case 6 : 78 79//case 'f' : 80 81case "six" : 82 83System.out.println("星期六"); 84 85break; 86 87//case 7 : 88 89//case 'g' : 90 91case "seven" : 92 93System.out.println("星期日"); 94 95} 96 97} 98 99} 100 101// 3,4,5, 春天 ,6,7,8,夏天,9 , 10 ,11 秋天 12 ,1,2 冬天
If语句和switch语句的区别

1、相同点:if语句和switch语句都可以表达分支结构

2、不同点:

1、if语句格式相对灵活,更加强大,switch语句相对弱小。所有的switch语句都可以被if语句替代。

2、if语句更多的是做一些连续性的判断,而switch语句更多的是做一些离散性的匹配

3、if语句每次都需要获取表达式的值,而switch只获取一次表达式的值,所以相对switch的效率高一些。

代码示例

1class Demo_12 { 2 3public static void main(String[] args) { 4 5//if语句和switch语句区别 6 7//if语句连续性的判断 8 9int i = 60; 10 11if(i > 1 && i < 100){ // 1< i<100 12 13System.out.println(i); 14 15} 16 17switch(j*j){//离散型的匹配 18 19case 1: 20 21case 2: 22 23case 3: 24 25} 26 27if(j * j > 10){ 28 29}else if(j*j < 10){ 30 31} 32 33} 34 35}
练习

键盘录入一个学生的成绩,int类型的分数,根据录入的分数,输出分数等级

[90, 100],优秀   大于等于90小于等于100

[80,90),良好     大于等于80小于90

[60, 80),及格

[0, 60),不及格

使用两种方式完成:

1、使用if语句完成

2、使用switch语句完成

代码示例

1import java.util.Scanner; 2 3class Demo_13 { 4 5public static void main(String[] args) { 6 7/* 8 9键盘录入一个学生的成绩,int类型的分数,根据录入的分数,输出分数等级 10 11[90, 100],优秀 大于等于90小于等于100 12 13[80,90),良好 大于等于80小于90 14 15[60, 80),及格 16 17[0, 60),不及格 18 19*/ 20 21Scanner sc = new Scanner(System.in); 22 23System.out.println("请输入学生的成绩"); 24 25int score = sc.nextInt(); 26 27switch(score / 10){ 28 29case 0 : 30 31case 1 : 32 33case 2 : 34 35case 3 : 36 37case 4 : 38 39case 5 : 40 41System.out.println("不及格"); 42 43break; 44 45case 6 : 46 47case 7 : 48 49System.out.println("及格"); 50 51break; 52 53case 8 : 54 55System.out.println("良好"); 56 57break; 58 59case 9 : 60 61case 10 : 62 63System.out.println("优秀"); 64 65break; 66 67default: 68 69System.out.println("你输入的成绩不合法"); 70 71} 72 73/* if(score >= 90 && score <= 100){ 74 75System.out.println("优秀"); 76 77}else if(score >= 80 && score < 90){ 78 79System.out.println("良好"); 80 81}else if(score >=60 && score < 80){ 82 83System.out.println("及格"); 84 85}else if(score >=0 && score < 60){ 86 87System.out.println("不及格"); 88 89}else{ 90 91System.out.println("你输入的不是成绩吧"); 92 93}*/ 94 95} 96 97}
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )