计算机网站开发方向,北京市430场新闻发布会,汽车网站策划,vs进行网站建设个人主页#xff08;找往期文章包括但不限于本期文章中不懂的知识点#xff09;#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 目录
逻辑控制
顺序结构
分支结构
if语句
switch 语句
循环结构
while 循环
for 循环
do while 循环
输入输出
输出到控制台
从键盘输入
… 个人主页找往期文章包括但不限于本期文章中不懂的知识点我要学编程(ಥ_ಥ)-CSDN博客 目录
逻辑控制
顺序结构
分支结构
if语句
switch 语句
循环结构
while 循环
for 循环
do while 循环
输入输出
输出到控制台
从键盘输入
猜数字游戏 逻辑控制
Java同样和C语言一样是有三种结构顺序结构选择结构循环结构。
顺序结构
顺序结构就是程序在执行时按照一行一行代码的顺序执行下去。
分支结构
if语句
语法格式
//语法格式1
if(布尔表达式){// 语句
}语法格式2
if(布尔表达式){// 语句1
}else{// 语句2
}语法格式3
if(布尔表达式1){// 语句1
}else if(布尔表达式2){// 语句2
}else{// 语句3
}如果布尔表达式结果为true执行if中的语句否则不执行。
好啦大部分内容和C语言差不多我们就直接上练习。
【练习】
1. 判断一个数字是奇数还是偶数。
public class Test {public static void main(String[]args){//从键盘上输入数据Scanner scanner new Scanner(System.in);int i scanner.nextInt();if(i % 2 1){System.out.println(是奇数);} else{System.out.println(是偶数);}}
}至于那个从键盘上输入数据我们在后面学习输入数据时会学习。
2. 判断一个数字是正数负数还是零。
public class Test {public static void main(String[]args){Scanner scanner new Scanner(System.in);int i scanner.nextInt();if(i 0) {System.out.println(是正数);} else if (i 0) {System.out.println(是负数);} else {System.out.println(是0);}}
}3. 判断一个年份是否为闰年
public class Test {public static void main(String[]args){Scanner scanner new Scanner(System.in);int year scanner.nextInt();if (((year % 4 0)(year % 100 ! 0)) || (year % 400 0)){System.out.println(是闰年);}else {System.out.println(不是闰年);}}
}注意这里的代码风格和C语言是不一样的。
下面是C语言的做法
if (表达式)
{//语句1
}
else
{//语句2、
}switch 语句
基本语法
switch(表达式){case 常量值1:{语句1;[break;]}case 常量值2:{语句2;[break;]}...default:{//内容都不满足时执行语句;[break;]}
}
执行流程 1. 先计算表达式的值 2. 和case依次比较一旦有响应的匹配就执行该项下的语句直到遇到break时结束 3. 当表达式的值没有与所列项匹配时执行default语句。
练习根据 day 的值输出星期几。
public class Test {public static void main(String[] args) {//根据 day 的值输出星期几Scanner scanner new Scanner(System.in);int day scanner.nextInt();switch(day){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;default:System.out.println(输入错误);break;}}
}【注意事项】
1. 多个case后面的常量值不可以重复。
2. switch的括号内只能是以下类型的表达式 基本类型byte、char、short、int注意不能是long类型 引用类型String常量串、枚举类型。
3. switch 不能表达复杂的条件。当有复杂条件需要判断时我们就需要用到if语句了。
4. switch 虽然支持嵌套, 但是很丑一般不推荐。
综上, 我们发现, switch 的使用局限性是比较大的。
循环结构
while 循环
基本语法格式
//循环条件的结果也要是布尔类型
while(循环条件){循环语句;
}
循环条件为 true, 则执行循环语句; 否则结束循环。
练习1打印 1 - 10 的数字。
public class Test {public static void main(String[] args) {int n 1;//注意这里的结果一定要是布尔类型while(n 10){System.out.print(n );n;}}
}2. 计算 1 - 100 的和。
public class Test {public static void main(String[] args) {int n 1;int sum 0;while(n 100){sum n;n;}System.out.println(sum);}
}3. 计算 5 的阶乘
public class Test {public static void main(String[] args) {int ret 1;int n 1;while(n 5){ret * n;n;}System.out.println(ret);}
}4. 计算 1! 2! 3! 4! 5
public class Test {public static void main(String[] args) {int sum 0;int n 1;int ret 1;while(n 5){ret * n;sum ret;n;}System.out.println(sum);}
}注意事项
1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }。 2. 和 if 类似, while 后面的 { 建议和 while 写在同一行。
3. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行。
break
break 的功能是让循环提前结束。
练习找到 100 - 200 中第一个是 3 的倍数的数字。
public class Test {public static void main(String[] args) {int n 100;while(n 200){if(n % 3 0){System.out.println(n);break;}n;}}
}当执行到break时就会跳出循环。
continue
continue 的功能是跳过本次循环剩下的部分, 进入下次循环。
练习找到 100 - 200 中第一个是 3 的倍数的数字。
public class Test {public static void main(String[] args) {int n 100;while(n 200){if(n % 3 ! 0){n;//这个不能少continue;}System.out.println(n);break;}}
}执行到 continue 语句的时候, 就会立刻进入下次循环(判定循环条件), 从而不会执行到下方的打印语句。
for 循环
基本语法格式
for(表达式1;布尔表达式2;表达式3){表达式4;
}表达式1: 用于初始化循环变量初始值设置在循环最开始时执行且只执行一次。
表达式2: 循环条件满足则循环继续否则循环结束。
表达式3: 循环变量更新方式。
(和while循环类似) 1. 和 if 类似, for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { } 2. 和 if 类似, for 后面的 { 建议和 while 写在同一行. 3. 和 if 类似, for 后面不要多写 分号, 否则可能导致循环不能正确执行. 4. 和while循环一样结束单趟循环用continue结束整个循环用break。
do while 循环
基本语法格式
do{循环语句;
}while(循环条件);//这里的分号不能少
do while循环的特点是不管条件满不满足一上来就会执行循环语句。因此我们在写一个游戏的时候一般都会使用do while循环。
基本用法和while循环差不多。
输入输出
输出到控制台
基本语法
System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出System.out.println(输出切换行);
System.out.print(输出不换行);
System.out.printf(%s\n, 格式化输出);
println 输出的内容自带 \n, print 不带 \n。
printf 的格式化输出方式和 C 语言的 printf 是基本一致的。
格式化字符串
转换符类型举例输出的结果d十进制整数(%d, 100)100x十六进制整数(%x, 100)64o八进制整数(%o, 100) 144 f定点浮点数(%f, 100f)100.000000e指数浮点数(%e, 100f)1.000000e02g通用浮点数(%g, 100f)100.000a十六进制浮点数(%a, 100)0x1.9p6s字符串(%s, 100)100c字符(%c, ‘1’)1b布尔值(%b, 100)trueh散列码(%h, 100)64%百分号(%.2f%%, 2/7f)0.29%
这个表格没必要记住, 用到的时候根据需要查一下就行了实在要记住就记住一些常见的值。
从键盘输入
使用 Scanner 读取字符串/整数/浮点数。
举例
public class Test {public static void main(String[] args) {Scanner scanner new Scanner(System.in);System.out.print(请输入你的名字);String name scanner.nextLine();System.out.print(请输入你的年龄);int age scanner.nextInt();System.out.println(你的信息如下);System.out.println(名字name\n年龄age);}
} 这个输入类似创建一个变量。可以把Scanner看成一个输入变量类型后面的变量名可以随意取不一定要是scanner也可以是ab……后面的new Scanner是一起的固定的。System.in的意思是从键盘输入。而后面的nextLinenextInt是分别输入一个字符串和一个整形。与nextLine类似的还有一个next这个是遇到空格就停止读入即使你输入了我 要 学 编程它也只会读取“我”。
还有一个点就是当我们使用Scanner输入数据的时候在程序的末尾要加上 sc.close() 这个就类似我们在C语言里学习的文件操作一样打开文件后在程序结束时要加上一个fclose()来关闭文件。当然不加上这句话也没有关系。
练习使用 Scanner 循环读取 N 个数字并求取其平均值。
public class Test {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int n 0;//记录读取了几个数据double avg 0;int sum 0;//类似C语言里的while(scanf(%d, n) ! EOF)//当输入ctrl D时就会停止读取数据while(scanner.hasNextInt()){int j scanner.nextInt();sum j;n;}avg sum*1.0 / n;System.out.println(avg);}
}
:当循环输入多个数据的时候, 使用 ctrl z 来结束输入 (Windows 上使用 ctrl Z, Linux / Mac 上使用 ctrl D)这里指的是CMD上。我们用的不是CMD而是IDEA因此就是输入ctrl D。
猜数字游戏含源码
我们之前在学习C语言的循环时也写了一个猜数字的小游戏现在我们就用Java来实现一下。
这里我们就简单了解一下规则
游戏规则: 系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 猜小了, 如果输入的数字比该随机数大, 提示 猜大了 , 如果输入的数字和随机数相等, 则提示 恭喜你猜对了 。 逻辑实现具体可看下面这篇文章利用C语言的分支循环少量的函数知识写一个猜数字的小游戏-CSDN博客 源码
public class Tset {public static void game() {Scanner scanner new Scanner(System.in);Random random new Random();//生成随机数的种子int num random .nextInt(100)1;生成1~100之间的随机数int i 5;do{i--;System.out.print(请输入你要猜的数字);int n scanner.nextInt();if(n num){System.out.print(猜大了请重新猜);System.out.println(你还剩i次机会);} else if (n num) {System.out.print(猜小了请重新猜);System.out.println(你还剩i次机会);}else {System.out.println(恭喜你猜对了);break;}}while(i ! 0);}public static void menu() {System.out.println(***************************************);System.out.println(****** 猜数字游戏 ******);System.out.println(****** 1. play 0. exit ******);System.out.println(***************************************);}public static void main(String[] args) {Scanner scanner new Scanner(System.in);int input 0;do{menu();//打印菜单System.out.print(请选择你要进行的操作);input scanner.nextInt();switch(input){case 1:System.out.println(游戏开始请做好准备);game();break;case 0:System.out.println(游戏退出);break;default:System.out.println(选择错误请重新选择);break;}}while(input ! 0);}
}
这里有一个关于生成随机数的工具Random这个是用来生成一个随机数的种子的类似C语言里的srand函数。如果我们在 Random random new Random(); 这个语句的括号里随机输入一个值那么它生成的随机数就是伪随机数了。例如
public class Test {public static void main(String[] args) {Random random new Random(123);//随便写的一个数int num random.nextInt();//这个sum的值是一个定值System.out.println(num);}
}int num random .nextInt(100)1; 这个语句的意思是生成一个1~100的随机数。括号里的100相当于%100的意思也就是生成0~99的数字我们再加上1就变成1~100了。
至于 public static void game() 和 public static void menu() 这个我们在下一篇博客再一起来学习。
好啦本期JavaSE基础语法的学习到此就结束了下一期我们再一起学习吧 文章转载自: http://www.morning.dzqr.cn.gov.cn.dzqr.cn http://www.morning.kjmws.cn.gov.cn.kjmws.cn http://www.morning.aiai201.cn.gov.cn.aiai201.cn http://www.morning.dzyxr.cn.gov.cn.dzyxr.cn http://www.morning.pynzj.cn.gov.cn.pynzj.cn http://www.morning.wyrsn.cn.gov.cn.wyrsn.cn http://www.morning.gfrjs.cn.gov.cn.gfrjs.cn http://www.morning.bflws.cn.gov.cn.bflws.cn http://www.morning.zkpwk.cn.gov.cn.zkpwk.cn http://www.morning.qbjrl.cn.gov.cn.qbjrl.cn http://www.morning.sgmis.com.gov.cn.sgmis.com http://www.morning.pdynk.cn.gov.cn.pdynk.cn http://www.morning.rwlns.cn.gov.cn.rwlns.cn http://www.morning.wmfmj.cn.gov.cn.wmfmj.cn http://www.morning.ryznd.cn.gov.cn.ryznd.cn http://www.morning.gyzfp.cn.gov.cn.gyzfp.cn http://www.morning.yqqxj1.cn.gov.cn.yqqxj1.cn http://www.morning.hxxzp.cn.gov.cn.hxxzp.cn http://www.morning.zkgpg.cn.gov.cn.zkgpg.cn http://www.morning.zkdbx.cn.gov.cn.zkdbx.cn http://www.morning.ktqtf.cn.gov.cn.ktqtf.cn http://www.morning.rfkyb.cn.gov.cn.rfkyb.cn http://www.morning.cjsrg.cn.gov.cn.cjsrg.cn http://www.morning.kwksj.cn.gov.cn.kwksj.cn http://www.morning.jqzns.cn.gov.cn.jqzns.cn http://www.morning.pjftk.cn.gov.cn.pjftk.cn http://www.morning.krkwp.cn.gov.cn.krkwp.cn http://www.morning.bnfsw.cn.gov.cn.bnfsw.cn http://www.morning.hnrls.cn.gov.cn.hnrls.cn http://www.morning.ljjmr.cn.gov.cn.ljjmr.cn http://www.morning.rlbc.cn.gov.cn.rlbc.cn http://www.morning.pghfy.cn.gov.cn.pghfy.cn http://www.morning.sgnxl.cn.gov.cn.sgnxl.cn http://www.morning.ljsxg.cn.gov.cn.ljsxg.cn http://www.morning.bojkosvit.com.gov.cn.bojkosvit.com http://www.morning.hongjp.com.gov.cn.hongjp.com http://www.morning.syrzl.cn.gov.cn.syrzl.cn http://www.morning.jwdys.cn.gov.cn.jwdys.cn http://www.morning.rwhlf.cn.gov.cn.rwhlf.cn http://www.morning.lsfbb.cn.gov.cn.lsfbb.cn http://www.morning.wmhqd.cn.gov.cn.wmhqd.cn http://www.morning.qgjwx.cn.gov.cn.qgjwx.cn http://www.morning.rmqmc.cn.gov.cn.rmqmc.cn http://www.morning.bcnsl.cn.gov.cn.bcnsl.cn http://www.morning.rnqrl.cn.gov.cn.rnqrl.cn http://www.morning.hdlhh.cn.gov.cn.hdlhh.cn http://www.morning.sbrxm.cn.gov.cn.sbrxm.cn http://www.morning.zsrjn.cn.gov.cn.zsrjn.cn http://www.morning.lyhry.cn.gov.cn.lyhry.cn http://www.morning.wsgyq.cn.gov.cn.wsgyq.cn http://www.morning.zttjs.cn.gov.cn.zttjs.cn http://www.morning.yqqgp.cn.gov.cn.yqqgp.cn http://www.morning.qrqg.cn.gov.cn.qrqg.cn http://www.morning.hrydl.cn.gov.cn.hrydl.cn http://www.morning.dnjwm.cn.gov.cn.dnjwm.cn http://www.morning.xtgzp.cn.gov.cn.xtgzp.cn http://www.morning.gllhx.cn.gov.cn.gllhx.cn http://www.morning.xnpj.cn.gov.cn.xnpj.cn http://www.morning.yrngx.cn.gov.cn.yrngx.cn http://www.morning.xrpjr.cn.gov.cn.xrpjr.cn http://www.morning.xkqjw.cn.gov.cn.xkqjw.cn http://www.morning.ftzll.cn.gov.cn.ftzll.cn http://www.morning.jzfxk.cn.gov.cn.jzfxk.cn http://www.morning.jfbgn.cn.gov.cn.jfbgn.cn http://www.morning.rcmcw.cn.gov.cn.rcmcw.cn http://www.morning.rckdq.cn.gov.cn.rckdq.cn http://www.morning.jtszm.cn.gov.cn.jtszm.cn http://www.morning.ydhck.cn.gov.cn.ydhck.cn http://www.morning.drbd.cn.gov.cn.drbd.cn http://www.morning.tsxg.cn.gov.cn.tsxg.cn http://www.morning.yxkyl.cn.gov.cn.yxkyl.cn http://www.morning.srmdr.cn.gov.cn.srmdr.cn http://www.morning.lpbrp.cn.gov.cn.lpbrp.cn http://www.morning.ndfwh.cn.gov.cn.ndfwh.cn http://www.morning.zffps.cn.gov.cn.zffps.cn http://www.morning.fbdkb.cn.gov.cn.fbdkb.cn http://www.morning.tfwg.cn.gov.cn.tfwg.cn http://www.morning.nbsfb.cn.gov.cn.nbsfb.cn http://www.morning.rywn.cn.gov.cn.rywn.cn http://www.morning.qjngk.cn.gov.cn.qjngk.cn