Day-03
1.顺序结构
-
java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。
-
顺序结构是最简单的算法结构。
-
语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的基本算法结构。
2.if语句
单选择结构
package com.Gua.Day03;
import java.util.Scanner;
public class IfDemo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入字符:");
String s = scanner.nextLine();
//equals:判断字符串是否相等
if (s.equals("Hello")){
System.out.println("Hello");
}
System.out.println("end");
scanner.close();
}
}
双选择结构
package com.Gua.Day03;
import java.util.Scanner;
public class IfDemo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int x = scanner.nextInt();
if (x >= 60){
System.out.println("成绩合格");
}else{
System.out.println("成绩不合格");
}
scanner.close();
}
}
多选择结构
package com.Gua.Day03;
import java.util.Scanner;
public class IfDemo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入分数:");
int score = scanner.nextInt();
if (score >= 60 && score<90){
System.out.println("您的成绩及格");
}else if(score >= 90 && score <= 100){
System.out.println("您的成绩非常好");
}else if(score < 60 && score > 0){
System.out.println("您的成绩不及格");
}else
System.out.println("非法输入");
scanner.close();
}
}
-
if语句至多有1个else语句,else语句在所有的else if 语句之后。
-
if语句可以有若干个else if语句,它们必须在else语句之前。
-
一旦其中一个else if 语句检测为true,其他的else if 以及 else 语句都将跳过执行。
嵌套if语句
public static void main(String[] args) {
/*
* 学校举行运动会,百米赛跑跑入10 秒内的学生有资格进决赛,根据性别分别进入男子组和女子组
*/
//创建Scanner类对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的百米赛跑成绩(秒):");
double runScore =sc.nextDouble();
//获取百米赛跑成绩之后,判断其能不能进入决赛
if(runScore<10&&runScore>0){
System.out.println("恭喜你进入决赛");
//进入决赛之后,根据性别进行分组
//获取性别
System.out.println("请输入您的性别:");
String gender =sc.next();
//判断性别,分组
if(gender.equals("男")){
System.out.println("进入男子决赛组");
}else if(gender.equals("女")){
System.out.println("进入女子决赛组");
}else{
System.out.println("暂时还没有针对你的性别开展决赛,敬请期待");
}
}else if(runScore>=10){
System.out.println("很遗憾,不能进入决赛");
}else{
System.out.println("输入错误");
}
System.out.println("程序执行完毕");
}
}
3.switch多选择结构
package com.Gua.Day03;
public class SwitchDemo01 {
public static void main(String[] args) {
String name = "冬瓜";
//JDK7的特性,表达式结果可以是字符串!
//字符的本质还是数字
//反编译 java -- class(字节码文件) ---反编译
switch(name){
case "冬瓜":
System.out.println("冬瓜");
break;
case "小黄":
System.out.println("小黄");
break;
default:
System.out.println("输的是个啥");
}
}
}
反编译
4.while循环
-
只要布尔表达式为true,循环就会一直执行下去
-
大多数情况会让循环停止下来,我们需要一个让表达式失效的方式来结束循环
-
少部分情况需要循环一直执行,比如服务器的请求响应监听
-
循环条件一直为ture会造成无限循环【死循环】,我们正常的业务编程中应该 尽量避免死循环,会影响程序性能或者造成程序卡死崩溃
package com.Gua.Day03;
public class WhileDemo01 {
public static void main(String[] args) {
int i = 0;
while(i<100){
i++;
System.out.println(i);
}
}
}
package com.Gua.Day03;
public class WhileDemo02 {
public static void main(String[] args) {
int i = 0;
int sum = 0;
while(i <= 100){
sum = sum + i;
i++;
}
System.out.println(sum);
}
}
5.do while循环
-
对于while而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也要执行至少一次
-
do...while循环和while循环相似,不同的是,do...while循环至少会执行一次
-
while和do...while的区别:
-
while先判断后执行,do..while是先执行后判断
-
do...while总是保证循环体会被执行至少一次,这是他们的主要差别
-
package com.Gua.Day03;
public class DoWhileDemo01 {
public static void main(String[] args) {
int i = 0;
int sum = 0;
do {
sum = sum + i;
i++;
}while (i <= 100);
System.out.println(sum);
}
}
6.For循环
-
for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构
-
for循环执行的次数在执行之前就能确定
package com.Gua.Day03;
public class ForDemo01 {
public static void main(String[] args) {
int a = 1;//初始化条件
while (a <= 100) {//条件判断、
System.out.println(a);
a += 2;//迭代
}
System.out.println("while循环结束");
for (int i =1; i <= 100; i++){
System.out.println(i);
}
System.out.println("for循环结束");
}
}
package com.Gua.Day03;
public class ForDemo02 {
//练习:计算0-100之间的奇数和偶数的和
public static void main(String[] args) {
int oddSum = 0;
int evenSum = 0;
for (int i = 0; i < 100; i++) {
if (i %2!= 0){//奇数
oddSum += i; //oddSum = oddSum + i;
}else {//偶数
evenSum += i;
}
}
System.out.println("奇数的和为:"+ oddSum);
System.out.println("偶数的和为:"+ evenSum);
}
}
练习2:用while或for循环输出1-1000之间的能被5整除的数,并且每行输出3个
package com.Gua.Day03;
public class ForDemo03 {
public static void main(String[] args) {
//练习2:用while或for循环输出1-1000之间的能被5整除的数,并且每行输出3个
for ( int i = 0; i <= 1000; i++){
if (i % 5 == 0){
System.out.print(i+"\t");
}
if(i%(5*3) == 0 ){
System.out.println();
//System.out.println("\n");
}
}
//println 输出完会换行
//print 输出完不会换行
}
}
练习3:打印九九乘法表🌟🌟🌟
package com.Gua.Day03;
public class ForDemo99 {
public static void main(String[] args) {
for (int j = 1; j <= 9; j++) {
for (int i = 1; i <= j; i++) {
System.out.print(j+"*"+i+"="+(j*i) + "\t");
}
System.out.println();
}
}
}
注意:
//先打印第一列, //把固定的1再用一个循环包起来 //去掉重复项,i <= j //调整样式
用 do...while 循环写九九乘法表
package com.Gua.Day03;
public class DoWhileDemo99 {
public static void main(String[] args){
/*
do{}while循环实现9*9乘法口诀表
*/
int i=9;
do{
int j=1;
do{
System.out.print(i+"*"+j+"="+(i*j)+" "+"\t");
// "\t"这是JAVA语言默认的制表符号,使用此符号,打印出的乘法表格较为美观
j++;
}while(j<=i);//大于i之后跳出循环
System.out.println();
i--;
}while(i>=1);//小于1之后跳出循环
}
}
For 增强循环,(偷懒工具)for( : );//遍历数组
package com.Gua.Day03;
public class ForDemo05 {
public static void main(String[] args) {
int[] numbers = {10,20,30,40,50};//定义了一个数组
for ( int i = 0; i < 5; i ++){
System.out.println(numbers[i]);
}
System.out.println("===========");
//遍历数组的元素
for (int x : numbers){
System.out.println(x);
}
}
}
7.break continue
-
break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)
-
continue语句在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
-
关于goto关键字:
-
goto关键字很早就在程序设计语言中出现,尽管goto仍是java的一个保留字,但是并未在语言中得到正式使用;Java没有goto。然而,在breal和continue这两个关键字的身上,我们仍能看出一些goto的影子--带标签的break和continue。
-
“标签”是指后面跟一个冒号的标识符,例如:label:
-
对Java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方。
-
break语句:
package com.Gua.Day03;
public class BreakDemo {
public static void main(String[] args) {
int i = 0;
while (i < 100) {
i++;
System.out.print(i+ "\t");
if (i == 30) {
break;
}
}
}
}
continue语句:
package com.Gua.Day03;
public class ContinueDemo {
public static void main(String[] args) {
int i =0;
while (i < 100) {
i ++;
if (i % 10 == 0) {
System.out.println();
continue;
}
System.out.print(i+"\t");
}
}
}