键盘录入
步骤:
1.导包------------获取信息位置
2.找到Scanner----------
3.获取数据
package day04;
//1.导包
import java.util.Scanner;
/**
* 键盘录入获取数据
*
* 导包
* @author tarena
*
*/
public class JavaDemo1 {
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);
}
}
流程控制语句
顺序结构
绝大部分代码熊上往下由左往右依次编译和执行
选择结构
if语句(三种格式的语句)
if语句格式1(提供一个选项,可能有结果可能没有结果)
if(判断条件){
语句体;
}
执行流程:
首先进行判断,如果判断结果是true执行语句体,语句体执行完毕if语句结束
false直接跳过if语句不执行
package day04;
public class IfDemo1 {
public static void main(String[] args) {
//衣服的价格
int price = 1999;
//剩余的钱
int money = 2000;
//进行选择判断
//如果语句体只有一句话省略大括号不写
if (money >= price) {
System.out.println("不差钱,买买买!");
}
//
System.out.println("家里失火了,回家。。。");
}
}
if语句格式2(提供一个选项返回一个结果)
if(){
语句1;
}else{
语句2;
}
执行流程
先去执行判断,如果判断结果为true执行语句体1,执行完语句体1,if语句结束如果判断结果为false执行语句体2,执行完语句体2,if语句结束当if语句格式2有返回值时和三目等效转换
package day04;
public class IfDemo2 {
public static void main(String[] args) {
//求两个整数最大值
/*int a = 1;
int b = 2;
//选择判断
if (a>b) {
System.out.println(a);
}else {
System.out.println(b);
}*/
//求三个整数最大值
int a = 1;
int b = 5;
int c = 2;
//选择判断
//if嵌套
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;
}else if(判断条件2){
语句体2;
}
…
else{
语句体n+1
}
执行流程:
执行判断条件1,如果是true执行语句体1执行完毕,if语句结束如果判断结果为false执行判断条件2,如果是true执行语句体2执行完毕,if语句结束如果是fals按照上述操作继续往下执行直到所有判断条件都是false,执行else里的语句体n+1执行完毕if语句结束
测试数据:1.正确数据
2.边界数据
3.错误数据
package day04;
import java.util.Scanner;
public class IfDemo3 {
public static void main(String[] args) {
//提供输入召唤师的星星数返回对应的段位
//获取星星数
Scanner sc = new Scanner(System.in);
int xing = sc.nextInt();
//选择判断---返回对应的段位
if(xing >= 0 && xing < 3){
System.out.println("倔强青铜");
}else if (xing > 3 && xing <= 10) {
System.out.println("不屈白银");
}else if (xing > 10 && xing <= 20) {
System.out.println("荣耀黄金");
}else if (xing > 20 && xing <= 30) {
System.out.println("华贵铂金");
}else if (xing > 30 && xing <= 90) {
System.out.println("超凡大师");
}else if(xing >= 90){
System.out.println("最强王者");
}else{
System.out.println("亲!你的输入有误");
}
}
}
switch语句(列举值)
switch语句
格式:
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;
…
default:
语句体n+1;
break;
}
执行流程:
先去计算出表达式的值,和每个case的值进行比较,如果有相等的,执行对应的语句体,执行break语句结束。 如果没有相等的执行default里的语句体执行break语句结束。
注意:
1.case值是常量且不能重复
2.表达式值类型支持—byte、short、char、int.从jdk1.5开始支持枚举类型,从jdk1.7开始支持string类型
3.支持省略break,产生case穿透效果(输入月份返回对应的季节)
4.支持省略default(选择题)
5.结束条件(1.遇见break 2.执行到代码的最后)
package day04;
import java.util.Scanner;
public class SwitchDemo {
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("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("亲!你的输入有误");
break;
}
}
}
switch练习:
package day04;
import java.util.Scanner;
/**
* 选择题
* 题干
* 选项
* 算分
* @author tarena
*
*/
public class SwitchText {
public static void main(String[] args) {
//题干
System.out.println("从下列选项中选择出你最喜爱的人?");
//选项
System.out.println("A 苍老师");
System.out.println("B 罗志祥");
System.out.println("C PDD");
System.out.println("D 古力娜扎");
//录入输入的选项
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
//选择
switch (s) {
case "A":
System.out.println("选择错误!!! 扣10分");
break;
case "B":
System.out.println("选择错误!!! 扣 60分");
break;
case "C":
System.out.println("选择正确!!! 加1分");
break;
case "D":
System.out.println("选择错误!!! 扣10分");
break;
default:
break;
}
}
}
循环结构
for循环、while循环、dowhile循环
for循环(循环范围确定)
格式
for(初始值;判断条件;控制条件){
循环体;
}
执行流程
先去计算出初始值,拿着初始值和判断条件进行比较如果为true执行循环体,执行控制条件改变初始值,拿着改变的初始值和判断条件进行比较,如果为true重复上述操作直到判断条件的结果值为false,则循环结束。
package day04;
public class ForDemo {
public static void main(String[] args) {
//打印一遍helloword
for (int i = 0; i < 10; i++) {
System.out.println("helloword");
}
}
}
for循环练习:
package day04;
public class ForText {
public static void main(String[] args) {
//请在控制台输出数据1-10
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
//求出1-10之间数据之和
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum = sum + i;
}
System.out.println(sum);
//求出1-100之间偶数和
int sum = 0;
for (int i = 0; i <= 100; i++) {
if ((i & 1) == 0) {
sum += i;
}
}
System.out.println(sum);
//在控制台输出所有的“水仙花数”
//统计“水仙花数”共有多少个
// 三位数、abc = a*a*a + b*b*b + c*c*c;
//恒久不变的规律---任意位整数%10结果是个位
int sum = 0;
for (int i = 100; i < 1000; i++) {
int a = i/100;
int b = i/10%10;
int c = i%10;
if ((a*a*a + b*b*b + c*c*c) == i) {
System.out.println(i);
sum += 1;
}
}
System.out.println("共有水仙花数:" + sum);
}
}
while循环
格式
初始值
while(判断条件){
循环体;
控制条件;
}
执行流程:
先去计算出初始值,拿着初始值和判断条件进行比较如果为true执行循环体,执行控制条件改变初始值,拿着改变的初始值和判断条件进行比较,如果为true重复上述操作直到判断条件的结果值为false,则循环结束
package day04;
public class WhileDemo {
public static void main(String[] args) {
//首付
int price = 20000 * 30;
//存的钱
int leftMoney = 0;
//统计数
int count = 0;
//循环
while (leftMoney < price) {
//每月存钱
leftMoney += 5500;
//
count ++;
}
//
System.out.println(count * 1.0 / 12);
}
}
dowhile循环(最少执行一次)
格式
初始值
do{
循环体;
控制条件;
}while(判断条件)
执行流程 :
先去计算出初始值,执行循环体,执行控制条件,拿着改变初始值和判断条件进行比较,如果为true执行循环体执行控制条件拿着改变初始值和判断条件进行比较,如果为true重复执行上述操作直到判断结果为false循环结束
package day04;
public class DoWhileDemo {
public static void main(String[] args) {
//打印10遍helloworld
int i = 1;
do {
System.out.println("helloworld");
i++;
} while (i <= 10);
}
}
三种循环的区别和联系
1.循环范围确定推荐for循环,循环范围不确定推荐while循环,最少执行一次推荐dowhile循环
2.三种循环可以等价转换
3.三种循环-----死循环
4.for循环初始值后面不能使用
循环练习:
1.打印图形
package day04;
/**
* //打印如下图形
* *****
* *****
* *****
* *****
* @author tarena
*
*/
public class JavaDemo3 {
public static void main(String[] args) {
//循环嵌套
for (int i = 1; i <= 5; i++) {//外层循环--行数
//打印相邻的一行星星
for (int j = 1; j <= 5; j++) {//内层循环--列数
System.out.print("*");
}
//换行
System.out.println();
}
}
}
2.打印九九乘法表
package day04;
/**
* 打印九九乘法表
* @author tarena
*
*/
public class JavaDemo4 {
public static void main(String[] args) {
//打印九九乘法表
for (int i = 1; i <= 9; i++) {//外层循环--行数
for (int j = 1; j <= i; j++) {//内层循环--列数
System.out.print(j + "*" + i + "=" + (i * j) + '\t');
}
//换行
System.out.println();
}
}
}