一、java语言特点
二、配置java环境 path
三、记事本 javac -d . java 包名.类名
四、eclipse
五、变量 定义变量 数据类型 变量名=值;
六、相关的数据类型
基本(四类 、8种)、引用
类型转换(自动、强制)
运算符(算术 ++ --、逻辑 && & || |、比较、三元 )
三目:变量 = 表达式一 ? 表达式二 :表达式三
七、变量名的命名规则
八:顺序结构
九:选择结构
if(){} if(){}else if(){}else if(){} if()else{}
switch(表达式){} byte short int char enum string
十、循环结构
for
for(变量初始化;控制循环条件;变量的递增或者递减){
循环体;
}
第一次循环:
变量初始化;(只执行一次)
控制循环条件
循环体
变量的递增或者递减
第二次运行、第三次....
控制循环条件
循环体
变量的递增或者递减
int i = 1;
for(;;){
if(i++>=5){
break;
}
}
当明确循环次数的情况下,使用for循环。如果不确定循环次数,就选择while循环。
开发过程中,基本使用for循环。
先判断、再执行。
while(条件){
循环体;
}
外部;
示例1:
// 通过while循环打印10遍"Hello World"
int i = 1;
while(i++ <= 10) {
System.out.println("hello world!");
// i++;
}
示例2:
// 需求:限定用户输入内容。
// 提示用户输入1~7(含1和7)之间的数字。
// 如果用户输入的数字范围不在1~7之内,
// 让用户重新输入,直到用户输入的数字符合要求。
Scanner sc = new Scanner(System.in);
// System.out.println("请输入1-7之间的数字:");
// int num = sc.nextInt();
// while(num<1 || num>7) {
// System.out.println("请输入1-7之间的数字:");
// num = sc.nextInt();
// }
// int num = 0;
// do {
// System.out.println("请输入1-7之间的数字:");
// num = sc.nextInt();
// }while(num<1 || num>7);
int num = 0;
while(num<1 || num>7) {
System.out.println("请输入1-7之间的数字:");
num = sc.nextInt();
}
int num = 0; //变量初始化 表达式一
while(num<1 || num>7) {//控制循环条件 表达式二
System.out.println("请输入1-7之间的数字:");
num = sc.nextInt();//控制值的变化--递增、递减 表达式三
}
for(表达式一;表达式一;表达式一){
}
先执行一次,再判断。至少执行一次循环体。
do{
循环体;
}while(条件);
示例:
// 需求:生成2个[10, 20]之间的随机数,
// 如果生成的2个数不相等,
// 再重新生成,直到2个数相等。
Random r = new Random();
//r.nextInt(max-min+1)+min
int num1 = 0;
int num2 = 0;
do {
num1 = r.nextInt(11)+10;
num2 = r.nextInt(11)+10;
System.out.println(num1+"======="+num2);
}while(num1 != num2);
// 输入一个整数,判断是几位数。
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
// 1/10=0 12/10/10 123/10/10/10 12345/10/10/10/10/10=0
int num2 = num;
int count = 0;
do {
num /= 10;
count++;
}while(num!=0);
System.out.println(num2+"的位数是:"+count);
需求:输入一个整数,判断是几位数。
需求:世界上最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如有一张足够大的纸,它的厚度是0.1毫米。请问折叠多少次,可以折成珠穆朗玛峰的高度?
需求:生成2个[10, 20]之间的随机数,如果生成的2个数不相等,再重新生成,直到2个数相等。
需求:如果你是一个富二代,你有10亿元(1000000000),每天花一半,多天可以花完。
需求:在控制台打印出所有的水仙花数。水仙花数:是一个三位数,水仙花数的个位、十位、百位数字的立方之和等于原数。
// 需求:输入一个整数,判断是几位数。 102233/10/10/10/10
//
// 需求:世界上最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),
// 假如有一张足够大的纸,它的厚度是0.1毫米。
// 请问折叠多少次,可以折成珠穆朗玛峰的高度?
//0.1 0.2 0.4 0.8
double height = 0.1;
int count = 0;
do {
height *= 2;
count++;
}while(height <= 8844430);
System.out.println(count);
// 需求:生成2个[10, 20]之间的随机数,如果生成的2个数不相等,再重新生成,直到2个数相等。
int num1 = 0;
int num2 = 0;
Random r = new Random();
do {
num1 = r.nextInt(11)+10;
num2 = r.nextInt(11)+10;
System.out.println(num1+"---"+num2);
}while(num1 != num2);
// 需求:如果你是一个富二代,你有10亿元(1000000000),每天花一半,多天可以花完。
//1000000000 /2 500000000 0
int num = 1000000000;
int days = 1;
while((num/=2) !=0 ) {
days++;
}
System.out.println(days++);
// 需求:在控制台打印出所有的水仙花数。
// 水仙花数:是一个三位数,水仙花数的个位、十位、百位数字的立方之和等于原数。
int i = 100;
while(i<1000) {
//i 100 个位 十位 百位
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+" ");
}
i++;
}
break: 用于结束循环,用在switch…case结构种,用于结束case语句。
switch(){
case 值:
语句;
break;
}
for(int i=1;i<10;i++){
syso(i);//break前
break;
syso(i);//break前 编译不通过
}
boolean flag = true;
Scanner sc = new Scanner(System.in);
while(flag){
int num = sc.nextInt();
if(num == 10){
flag = false;
}
}
while(true){
if(num == 10){
break;
syso();//编译报错
}
}
do{
if(){
break;
}
}while(true);
示例代码:
for(int i=1;i<10;i++) {
System.out.println(i);
if(i == 5) {
break;
}
System.out.println("***");
}
System.out.println("for循环外部");
// 用户可以在控制台输入任意字符串,
// 当用户输出字符串是"exit"的时候,
// 认为是结束输出,用户将不能再输入任何内容。
Scanner sc = new Scanner(System.in);
while(true) {
System.out.print("请输入...");
String str = sc.next();
if(str.equalsIgnoreCase("exit")) {
//退出
break;
}
}
需求:猜数字。产生1个[10, 30]的随机数,从键盘上输入你的猜测结果,如果猜测的数比随机数大,提示"你猜的数据大了",如果猜测的数比随机数小,提示"你猜测的数据小了",如果猜测的数和随机数一样大,提示"恭喜你猜对了",计算出猜了几次才猜对。
Random r = new Random();
Scanner sc = new Scanner(System.in);
int count = 0;
do {
int num1 = r.nextInt(21)+10;
System.out.print("请录入:");
int num2 = sc.nextInt();
count++;
if(num1>num2) {
System.out.println("随机数是:"+num1+"猜小了!");
}else if(num1<num2) {
System.out.println("随机数是:"+num1+"猜大了!");
}else {
System.out.println("随机数是:"+num1+"猜对了!");
break;
}
}while(true);
System.out.println("一共猜了"+count+"次!");
continue只是结束本次循环,而不是结束整个循环。continue通常情况下也是与if语句搭配使用。
for(int i = 1;i<100;i++) {
if(i % 7 == 0) {
continue;
}
System.out.print(i+" ");
}
System.out.println("----");
循环嵌套:一个循环作为另外一个循环的循环体或者是循环体的一部分。
for(){ //外层循环
for(){//内层循环
}
}
while(){
while(){
}
}
while(){
for(){
}
}
[
{
id:1
address:[
{河南郑州},
{河南信阳}
]
},
{},
{}
]
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
System.out.println("1 2 3 4 5 ");
System.out.println("1 2 3 4 5 ");
System.out.println("1 2 3 4 5 ");
..........
for(int i = 0;i<3;i++){
System.out.println("1 2 3 4 5 ");
}
..........
for(int i = 1;i<=100;i++){
System.out.print(i+" ");
}
for(int i = 1;i<=100;i++){
System.out.print(i+" ");
}
for(int i = 1;i<=100;i++){
System.out.print(i+" ");
}
-----------------
for(int i = 1;i < 4;i++) {//外层循环控制行 行数
for(int j=1;j<=10;j++) {//内层循环控制列 列数
System.out.print(j+" "); //每列的值
}
System.out.println();
}
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
for(int i=1;i<=1;i++){
System.out.print(i+" ");
}
System.out.println();
for(int i=1;i<=2;i++){
System.out.print(i+" ");
}
System.out.println();
for(int i=1;i<=3;i++){
System.out.print(i+" ");
}
System.out.println();
for(int i=1;i<=4;i++){
System.out.print(i+" ");
}
System.out.println();
-------------------------------
for(int i=1;i<6;i++){
for(int j=1;j<=i;j++){
System.out.print(j+" ");
}
System.out.println();
}
--------------------------------
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
平面图形 行、列 双层循环
外层循环控制行
内层循环控制列
for(int i=1;i<5;i++){//控制行数
//第一行 i=1 列数1
//第二行 i=2 列数2
//第三行 i=3 列表3
for(int j=1;j<=i;j++){ //控制列数
//内层循环体 打印输出 每列的值
System.out.print(j+" ");
}
System.out.println();
}
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
for(int i=1;i<=5;i++) {
for(int j=1;j<=6-i;j++) {
System.out.print(j+" ");
}
System.out.println();
}
for(int i=5;i>=1;i--) {
for(int j=1;j<=i;j++) {
System.out.print(j+" ");
}
System.out.println();
}