目录
leetcode练习题:
顺序结构
顺序结构语句是JAVA程序默认的执行流程,按照代码的先后顺序,从上到下依次执行
public class 顺序结构
{
public static void main(String[] args)
{
System.out.println("hello world");
System.out.println("加油中国!");
System.out.println("你好世界");
}
}
这个结构就是平常的程序运行,从上至下运行。
分支结构
if语句
注意事项:在语句体中,如果只有一句代码,花括号可以省略不写。
结构一练习:
一场考试,如果你的考试分数大于50,班花小红会做你女朋友
import java.util.Scanner;
public class if语句
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
System.out.println("请输入我的分数");
int Grades= sc.nextInt();
if(Grades>50)
{
System.out.println("小红是我的女朋友");
}
}
}
自动驾驶判断驾驶灯的状态决定车的姿态
public class if语句
{
public static void main(String[] args)
{
boolean Green_light=false;
boolean Red_light=false;
boolean Yellow_light=true;
if(Green_light==true)
{
System.out.println("冲冲冲");
}
if(Yellow_light==true)
{
System.out.println("慢慢慢");
}
if (Red_light==true)
{
System.out.println("停停停");
}
}
}
结构二练习:
键盘录入一个整数,表示身上的钱。如果大于等于100块,就是网红餐厅,否则就吃经济实惠的沙县小吃
import java.util.Scanner;
public class if语句
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int Money= sc.nextInt();
System.out.println("请输入身上的钱");
if(Money>=100)
{
System.out.println("网红餐厅");
}
else
{
System.out.println("沙县小吃");
}
}
}
switch语句
注意事项:switch的语句break不能忘记
public class switch语句 {
public static void main(String[] args) {
String noodles = "兰州拉面";
switch (noodles) {
case "兰州拉面":
System.out.println("吃兰州拉面");
break;
case "武汉热干面":
System.out.println("吃武汉热干面");
break;
case"北京炸酱面":
System.out.println("吃北京炸酱面");
break;
case"陕西油泼面":
System.out.println("吃陕西油泼面");
break;
default:
System.out.println("吃方便面");
break;
}
}
}
练习:
需求:键盘录入周几,显示今天的减肥活动,周一:跑步,周二;游泳,周三:慢走,周四:动感单车,周五:拳击,周六:爬山,周七:好好吃一顿。
import java.util.Scanner;
public class switch练习
{
public static void main(String[] args)
{
Scanner Sc=new Scanner(System.in);
int Week= Sc.nextInt();
switch(Week)
{
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("爬山");
case 7:
System.out.println("好好吃一顿");
default:
System.out.println("没有这个星期");
}
}
}
switch的小知识点
default确实可以省略,但是这也代表了switch的值无匹配对象时,switch语句不会执行
default语句可以写在任意位置,但是通常写在语句末尾
default语句执行流程”条件语句与case的值匹配,如果匹配上了,那么则执行case语句后面的语句,如果匹配上则继续向下匹配,除非遇到break则跳出switch语句,否则它会遍历整个swicth语句,直到switch语句结束
switch语句在jdk12版本进行了优化,可以使用以下方式简写代码,无需break
public class switch优化
{
public static void main(String[] args)
{
int Num=1;
switch (Num)
{
case 1->
{
System.out.println("1");
}
case 2->
{
System.out.println("二");
}
case 3->
{
System.out.println("三");
}
default ->
{
System.out.println("没有这种选项");
}
}
}
}
练习:
键盘录入星期数,输出工作日,休息日。(1~5)工作日,(6~7)休息日。
import java.util.Scanner;
public class switch练习
{
public static void main(String[] args)
{
Scanner Sc=new Scanner(System.in);
System.out.println("请输入今天星期几");
int day=Sc.nextInt();
switch (day)
{
case 1,2,3,4,5-> System.out.println("工作日");
case 6,7-> System.out.println("休息日");
}
}
}
在实际开发中,如果我们需要在多种情况下选择其中一个,就可以使用switch语句。当我们拨打了默写服务电话时,一般会有案件选择。假设现在我们拨打了一个机票预订电话。电话中语音提示:1.机票查询,2.机票预订,3.机票改签,4.退出服务。其他按键也是退出服务。请使用switch模拟该业务逻辑。
import java.util.Scanner;
public class switch练习
{
public static void main(String[] args)
{
Scanner Sc=new Scanner(System.in);
System.out.println("请输入你需要什么服务");
int Num=Sc.nextInt();
switch (Num)
{
case 1-> System.out.println("机票查询");
case 2-> System.out.println("机票预订");
case 3-> System.out.println("机票改签");
default -> System.out.println("退出服务");
}
}
}
循环结构
for循环
for(初始化语句;条件判断语句;条件控制语句)
{循环语句体}
练习:
打印5次HelloWorld
public class for循环初试
{
public static void main(String[] args)
{
for(int i=0;i<5;i++)
{
System.out.println("HelloWorld");
}
}
}
打印1~5
public class 打印
{
public static void main(String[] args)
{
for (int i=1;i<=5;i++)
{
System.out.println(i);
}
}
}
打印5~1
public class 倒打印
{
public static void main(String[] args)
{
for (int i=5;i>=1;i--)
{
System.out.println(i);
}
}
}
在实际开发中,需要重复执行的代码,会选择循环实现。
比如玩游戏的时候,如果网不好会经常断线重连。那么断线重连这个业务逻辑最多只写5次,请用代码实现
public class 断线重连
{
public static void main(String[] args)
{
for (int i=1;i<=5;i++)
{
System.out.println("第"+i+"次"+"执行断线重连");
}
}
}
求1~5之间的和
public class 求和
{
public static void main(String[] args)
{
int Num=0;
for (int i=1;i<=5;i++)
{
Num+=i;
System.out.println(Num);
}
}
}
如果把这里的Num定义在循环里面,Num每次都会被重新定义为0
求1~100之间的偶数和
public class 偶数求和
{
public static void main(String[] args)
{
int Num=0;
for(int i=1;i<=100;i++)
{
if(i%2==0)
{
Num+=i;
System.out.println(Num);
}
}
}
}
键盘录入两个数字,表示一个范围。统计这个范围中。既能被3整除,又能被5整除数字有多少个?
import java.util.Scanner;
public class 范围统计
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
System.out.println("请输入最小值");
int x= sc.nextInt();
System.out.println("请输入最大值");
int y= sc.nextInt();
for (int i=x;i<y;i++)
{
if (i%3==0&&i%5==0)
{
System.out.println(i);
}
}
}
}
while循环
while(条件控制语句)
{
循环体语句;
条件控制语句;
}
打印1~100
public class 打印
{
public static void main(String[] args)
{
int i=1;
while(i<=100)
{
System.out.println(i);
i++;
}
}
}
练习:
世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问我折叠多少次,可以折成珠穆朗玛峰的高度?
public class 折纸循环
{
public static void main(String[] args)
{
double h=0.1;
int t=0;
while(h<8844430)
{
h=h*2;
t++;
}
System.out.println("一共折了"+t+"次");
}
}
do while循环
初始化语句;
do{
循环语句;
条件控制语句;
}
while(条件控制语句)
先执行后判断,无论while的条件语句是否成立
for和while的区别:
for循环中,控制循环的变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
while循环中,控制循环的变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量可以继续使用
leetcode练习题:
给你一个整数x。如果x是一个回文整数,打印true,否则,返回false。解释:回文数是指正序(从左到右)和倒序(从右到左)读都是一样的整数。例如,121是回文,而123不是。
import java.util.Scanner;
public class 回文数
{
public static void main(String[] args)
{
Scanner Sc=new Scanner(System.in);
System.out.println("请输入一个整数");
int x= Sc.nextInt();
int temp=x;
int num=0;
while(x!=0)
{
int ge=x%10;
x=x/10;
num=num*10+ge;
}
System.out.println(num);//倒过来之后的数字
System.out.println(temp==num);
}
}
首先调用Scanner类,自行输入自己想判断的是否为回文数的数字,先看while的循环体,我们定义一个ge的变量用于存放这个被检测数的个位,被判断数的个位为这个除以10的余数,同时让x/10,这样每一次循环,我们都能取到的是都是末端数字,并让num承接倒过来的数字,但是因为我们在循环中不断让x/10,所以x最后会变为0,所以我们需要定义一个变量承接一开始被检测数,并由它代替x去判断是否倒过来还与没有倒过来一致。
给定两个整数,被除数和除数(都是正数,且不超过int的范围)。将两数相除,要求不用乘法、除法和%运算符。得到商和余数。
import java.util.Scanner;
public class 求商
{
public static void main(String[] args)
{
Scanner Sc=new Scanner(System.in);
System.out.println("请输入被除数和除数");
int beichu= Sc.nextInt();
int chu= Sc.nextInt();
int shang=0;
int yushu=0;
while(beichu>=chu)
{
beichu=beichu-chu;
shang++;
}
System.out.println("余数为"+yushu);
System.out.println("商为"+shang);
}
}