键盘录入
录入步骤:
1.导包
import java.util.Scanner;
2.获取Scanner
Scanner sc=new Scanner(System.in);
3.
sc.nextInt();获取整数
sc.nextLine();获取一行
/*
键盘录入
*/
//1.导包
import java.util.Scanner;
class Demo{
public static void main(String[] args) {
//2.获取Scanner
Scanner sc=new Scanner(System.in);
//3.获取数据
//int num=sc.nextInt();//获取整数
String s=sc.nextLine();//获取一行转成字符串
System.out.println("s:"+s);
}
}
流程控制语句(通过语句控制Java程序的执行轨迹)
1.顺序结构:从上往下由左往右依次编译执行
/*
顺序结构
*/
class Demo{
public static void main(String[] args) {
System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("4");
System.out.println("5");
}
}
2.选择结构
2.1if语句
/*
if语句格式1(提供一个选择,可能有结果可能没有结果)
if(判断条件){
语句体;
}
执行流程:
先去计算判断条件,如果判断条件计算之后的值为true接着执行语句体执行完语句体之后执行其他语句;如果判断条件计算之后的值为false执行其他语句。
*/
class IfDemo1{
public static void main(String[] args) {
int price=1999;
int money=1000;
//如果语句体只有一行代码可以省略{}不写
if(money>price)
System.out.println("可以买");
//其他语句
System.out.println("钱不够无法购买");
}
}
/*
if语句格式二(提供一个选择,一定返回一个结果)
if(判断条件){
语句体1;
}else{
语句体2;
}
执行流程:
先去计算判断条件的值,如果判断条件的值计算出之后是true执行语句体1接着执行其他语句;如果判断条件的值计算出之后是false执行语句体2接着执行其他语句。
if语句格式2的语句体是值时才和三目等效
*/
class IfDemo2{
public static void main(String[] args) {
//求两个整数最大值
/*int a=3;
int b=4;
int max=0;
if(a>b){
//System.out.println(a);
max=a;
}else{
//System.out.println(b);
max=b;
}*/
//求三个整数最大值
int a=3;
int b=6;
int c=1;
//
if(a>b){
//执行到此区域表明a大于b
if(a>c){
System.out.println(a);
}else{
System.out.println(c);
}
}else{
//执行到此区域表明b大于a
if(b>c){
System.out.println(b);
}else{
System.out.println(c);
}
}
}
}
/*
if语句格式3(提供多个选择,只有一个结果)
if(判断条件1){
语句体1;
}else if(判断条件2){
语句体2;
}else if(判断条件3){
语句体3;
}
....
else{
语句体n+1;
}
执行流程:
先去计算判断条件1,如果值是true执行语句体1接着执行其他语句;如果值是false接着计算判断条件2,如果值是true执行语句体2接着执行其他语句;如果值是false接着计算判断条件3如果计算结果是true执行语句体3接着其他语句;如果一直计算判断条件的值都是false执行else里的语句体n+1接着执行其他语句。
测试数据
正常数据、边界数据、错误数据
*/
import java.util.Scanner;
class IfDemo3{
public static void main(String[] args) {
//根据星星数获取对应的段位
//通过键盘录入获取输入的星星数
Scanner sc=new Scanner(System.in);
int xing=sc.nextInt();
if(xing>=0&&xing<5){
System.out.println("倔强青铜");
}else if(xing>=5&&xing<10){
System.out.println("不屈白银");
}else if(xing>=10&&xing<20){
System.out.println("荣耀黄金");
}else if(xing>=20&&xing<90){
System.out.println("超凡大师");
}else if(xing>=90&&xing<=100){
System.out.println("最强王者");
}else{
System.out.println("您输入的星星数有问题");
}
}
}
2.2switch语句
/*
switch
格式
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;
...
default:
语句体n+1;
break;
}
执行流程:
先去计算出表达式的值,拿着这个计算出的值和所有的case值进行比较如果有相等的就执行对应case的语句体,执行完语句体执行break,switch语句执行结束;如果计算出的值和所有的case值都不相等执行default对应的语句体接着执行break,switch语句结束。
注意:
1.表达式支持byte、short、int、char,从jdk1.5开始支持枚举类型、从jdk1.7开始支持String类型
2.case的值都是常量,不能重复
3.支持省略break,省略break会出现case穿透效果(给定月份返回对应的季节 晚自习)
4.支持省略default(选择题 机考)
5.switch语句结束的标志
1.遇见break 2.执行到代码最后一行自然结束
*/
class SwitchDemo{
public static void main(String[] args) {
//
System.out.println("欢迎致电中国东东");
System.out.println("查询电话余额请按1");
System.out.println("查询套餐请按2");
System.out.println("查询剩余流量请按3");
System.out.println("开通带宽请按4");
System.out.println("人工服务请按0");
//给定输入按键的值
int num=1;
//根据按键来进行选择
switch(num){
case 1:
System.out.println("您的电话余额为-1000");
break;
case 2:
System.out.println("月内流量10G");
break;
case 3:
System.out.println("剩余流量10MB");
break;
case 4:
System.out.println("请提供身份证以#结束");
break;
case 0:
System.out.println("正在为您转接人工客服,此次通过已被录音");
break;
default:
System.out.println("输入错误,请重新输入");
break;
}
}
}
注意:如果判断内容是一个范围,推荐使用if语句,如果判断内容是值,推荐使用switch 循环结构
3.循环结构
3.1for循环
/*
for循环(循环范围确定)
格式
for(初始值;判断条件;控制条件){
循环体;
}
执行流程
根据初始值和判断条件进行比较,如果比较的结果是true执行循环体,执行控制条件改变初始化值,拿着改变的值再和判断条件进行比较,如果比较的结果是true重复上述操作直到比较的结果是false才结束循环。
*/
class ForDemo{
public static void main(String[] args) {
//打印10遍
for(int i=0;i<10;i++){
System.out.println("helloworld");
}
}
}
3.2while循环
/*
while循环(循环范围不确定)
格式
初始化值;
while(判断条件){
循环体;
控制条件;
}
执行流程:
根据初始值和判断条件进行比较,如果比较的结果是true执行循环体,执行控制条件改变初始化值,拿着改变的值再和判断条件进行比较,如果比较的结果是true重复上述操作直到比较的结果是false才结束循环。
*/
class WhileDemo{
public static void main(String[] args) {
//房价
int price=6000*100;//首付
//4400
int money=0;
//计数
int count=0;
while(money<price){
money+=4400;
count++;
}
//
System.out.println(count*1.0/12);
}
}
3.3dowhile循环
/*
dowhile循环(最少执行一次)
格式
初始值;
do{
循环体;
控制条件;
}while(判断条件);
执行流程:
先获取初始化值接着执行循环体接着执行控制条件改变初始值,拿着改变的初始值和判断条件进行比较,如果比较的结果是true执行循环体执行控制条件改变初始值拿着改变的初始值和判断条件进行比较如果比较的结果是true重复上述操作直到比较的结果为false结束循环。
*/
class DoWhileDemo{
public static void main(String[] args) {
//打印10遍helloworld
int i=1;
do{
System.out.println("helloworld");
//i++;
}while(i<=10);
}
}
注意:三种循环结构的区别与联系:
1.三种循环等效转换
2.for循环的初始值不能在后续使用
3.三种循环都有可能出现死循环
控制跳转语句
break:在switch中用作结束语句,在循环中可以结束当前循环
continue:在循环中当作跳过当次循环
return(方法)
/*
控制跳转语句
break---跳出当前循环不执行
continue---跳出当次循环
标号 循环:名称
*/
class JavaDemo{
public static void main(String[] args) {
wc:for(int i=1;i<=6;i++){
nc:for(int j=1;j<=5;j++){
if(j==2){
break wc;
}
System.out.print("*");
}
System.out.println();
}
}
}