首页
关于
友链
Search
1
java project 客户管理信息软件
129 阅读
2
java学习笔记10
114 阅读
3
java学习笔记12
109 阅读
4
java学习笔记1
103 阅读
5
java学习笔记11
98 阅读
默认分类
程序设计
java
vue前端
java学习笔记
java练习
java工程
登录
Search
标签搜索
java
java基础
学习笔记
练习
类
java进阶
数组
循环
vue
工程
helloworld
注释
关键字
变量
基本数据类型
选择
String
进制
运算符
Scanner
bandao
累计撰写
19
篇文章
累计收到
1
条评论
首页
栏目
默认分类
程序设计
java
vue前端
java学习笔记
java练习
java工程
页面
关于
友链
搜索到
10
篇与
的结果
2021-11-27
java学习笔记5
{music id="1848243289" color="#1989fa" autoplay="autoplay"/}程序流程控制顺序结构分支结构循环结构输入Scanner具体步骤导包:import java.util.Scanner;Scanner的实例化:Scanner scan = new Scanner(System.in);调用Scanner类的相关方法(next() / nextXxx()),来获取指定类型的变量java代码//1.导包:import java.util.Scanner; import java.util.Scanner; public class ScannerTest { public static void main(String[] args) { //2.Scanner的实例化 Scanner scan = new Scanner(System.in); //3.调用Scanner类的相关方法 System.out.println("请输入姓名:"); String name = scan.next(); System.out.println(name); System.out.println("请输入你的芳龄:"); int age = scan.nextInt(); System.out.println(age); System.out.println("请输入"); double weight = scan.nextDouble(); System.out.println(weight); System.out.println("你是否相中我了呢?(true/false)"); boolean isLove = scan.nextBoolean(); System.out.println(isLove); //对于char型的获取,Scanner没有提供相关的方法。只能获取一个字符串 System.out.println("请输入你的性别:(男/女)"); String gender = scan.next(); char genderChar = gender.charAt(0);//获取索引为0位置上的字符 System.out.println(genderChar); } }3. Tip:需要根据相应的方法,来输入指定类型的值。 如果输入的数据类型与要求的类型不匹配时,会报异常:InputMisMatchException,导致程序终止。1. 分支结构(if——else)1. 三种结构第一种:if(条件表达式){ 执行表达式 }第二种:二选一if(条件表达式){ 执行表达式1 }else{ 执行表达式2 }第三种:n选一if(条件表达式){ 执行表达式1 }else if(条件表达式){ 执行表达式2 }else if(条件表达式){ 执行表达式3 } ... else{ 执行表达式n }2. java代码public class IfTest { public static void main(String[] args) { int heartBeats = 67; if(heartBeats < 60 || heartBeats > 100){ System.out.println("需要进一步检查"); } System.out.println("检查结束"); int age = 23; if(age < 18){ System.out.println("可以看动画片了"); }else { System.out.println("可以看大动画片了"); } if(age < 0){ System.out.println("输入的数据非法"); }else if(age < 18){ System.out.println("青少年模式"); }else if(age < 35){ System.out.println("青壮年模式"); }else if(age < 60){ System.out.println("中年模式"); }else if(age < 120){ System.out.println("老年模式"); }else if(age > 120){ System.out.println("成仙模式"); } } }3. Tipelse 结构是可选的。针对于条件表达式:如果条件表达式之间没有交集的关系,判断和执行语句声明与在上面还是下面无关。如果条件表达式之间有交集的关系,需要根据实际情况,考虑清楚应该将哪个结构声明在上面。如果条件表达式之间有包含的关系,需要将范围小的声明在范围大的上面。否则,范围小的就不会执行了。if-else结构是可以相互嵌套的。if-else结构中的执行语句只有一行时,对应的{}可以省略的。但是,不建议大家省略。2. 分支结构(switch-case)1. 结构switch(表达式){ case 常量1: 执行语句1; //break; case 常量2: 执行语句2; //break; ... default: 执行语句n; //break; }2. java代码public class SwitchCaseTest { public static void main(String[] args) { String season = "summer"; switch (season){ case "spring": System.out.println("春暖花开"); break; case "summer": System.out.println("夏日炎炎"); break; case "autumn": System.out.println("秋高气爽"); break; case "winter": System.out.println("冬雪皑皑"); break; default: System.out.println("季节输入有误"); break; } } }//从键盘分别输入年、月、日,判断这一天是当年的第几天 import java.util.Scanner; public class SwitchCaseExer { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入year:"); int year = scan.nextInt(); System.out.println("请输入month:"); int month = scan.nextInt(); System.out.println("请输入day:"); int day = scan.nextInt(); //定义一个变量来保存总天数 int sumDays = 0; switch(month){ case 12: sumDays += 30; case 11: sumDays += 31; case 10: sumDays += 30; case 9: sumDays += 31; case 8: sumDays += 31; case 7: sumDays += 30; case 6: sumDays += 31; case 5: sumDays += 30; case 4: sumDays += 31; case 3: if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){ sumDays += 29; }else { sumDays += 28; } case 2: sumDays += 31; case 1: sumDays += day; } System.out.println(year + month + "月" + day + "日是当年的第" + sumDays + "天"); } }3. Tip根据switch中的值,依次匹配各个case中的常量。匹配成功后,则进入相应case中。当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构末尾结束为止。break在switch-case结构中,表示遇到此关键字后,就跳出switch-case结构switch结构中的表达式,只能是如下的6种数据类型之一: byte 、short、char、int、枚举类型(JDK5.0新增)、String类型(JDK7.0新增)case 后面只能放常量,不能放范围。(case age > 18:)break关键字是可选的。default:相当于if-else结构中的else。default结构是可选的,而且位置是灵活的。凡是可以使用switch-case的结构,都可以用if-else。反之,不成立。我们写分支结构时,当发现既可以使用switch-case,(而且,switch中表达式的取值情况不太多), 又可以使用if-else时,我们优先用switch-case。原因:switch-case执行效率稍高。3. 循环结构(for循环)1. 结构① 初始化条件 ② 循环条件 --->是boolean类型 ③ 循环体 ④ 迭代条件 for(①;②;④){ ③ } 执行过程:① - ② - ③ - ④ - ② - ③ - ④ - ... - ②2.java代码public class ForTest { public static void main(String[] args) { for (int i = 0; i < 5; i++){ System.out.println(i + " hello world"); } int num = 1; //abcbcbc for(System.out.print('a'); num <= 3; System.out.print('c'), num++){ System.out.print('b'); } System.out.println(); //遍历100以内的偶数,输出所有偶数的和,输出偶数的个数 int sum = 0; int count = 0; for (int i = 1; i <= 100; i++) { if(i % 2 == 0){ //System.out.println(i); sum += i; count++; } } System.out.println("总和为:" + sum); System.out.println("个数为:" + count); } }4. 循环结构(while循环)1. 结构① 初始化条件 ② 循环条件 --->是boolean类型 ③ 循环体 ④ 迭代条件 ① while(②){ ③; ④; } 执行过程:① - ② - ③ - ④ - ② - ③ - ④ - ... - ②2. java代码public class WhileTest { public static void main(String[] args) { int i = 2; while (i <= 100){ if(i % 2 == 0){ System.out.println(i); } i++; } //循环外,仍然有i System.out.println(i);//101 } }3.Tip写while循环记得要写迭代条件。一旦丢了,就可能导致死循环,我们要避免出现死循环。for循环和while循环是可以相互转换的! 区别:for循环和while循环的初始化条件部分的作用范围不同。5. 循环结构(do while循环)1. 结构① 初始化条件 ② 循环条件 --->是boolean类型 ③ 循环体 ④ 迭代条件 ① do{ ③; ④; }while(②); 执行过程:① - ③ - ④ - ② - ③ - ④ - ... - ②2. java代码public class DoWhileTest { public static void main(String[] args) { //遍历100以内的偶数,并计算所有偶数的和及偶数的个数 int num = 1; int sum = 0; int count = 0; do { if(num % 2 == 0){ System.out.println(num); sum += num; count++; } num++; }while (num <= 100); System.out.println("总和为:" + sum); System.out.println("个数为:" + count); //do-while至少执行一次循环体 int number1 = 10; while (number1 >10){ System.out.println("while"); number1--; } int number2 = 10; do { System.out.println("do_while"); number2--; }while (number2 > 10); } }3. Tipdo-while循环至少会执行一次循环体!开发中,使用for和while更多一些。较少使用do-while6. 最简单“无限” 循环格式while(true) , for(;;),无限循环存在的原因是并不知道循环多少次, 需要根据循环体内部某些条件,来控制循环的结束。//从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。 import java.util.Scanner; public class ForWhileTest { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int positiveNumber = 0; //正数的个数 int negativeNumber = 0; //负数的个数 while (true){ //for (;;) int number = scanner.nextInt(); if(number > 0){ positiveNumber++; }else if(number < 0){ negativeNumber++; }else { break; } } System.out.println("正数: " + positiveNumber); System.out.println("负数:" + negativeNumber); } }结束方法循环条件部分返回false在循环体中,执行break
2021年11月27日
57 阅读
0 评论
1 点赞
2021-11-21
java学习笔记4
{music id="1817839113" color="#1989fa" /}一. 运算符算术运算符 赋值运算符 比较运算符(关系运算符) 逻辑运算符 位运算符 三元运算符1. 算术运算符1. 常用的算术运算符运算符运算范例结果+正号+33-负号b=4; -b-4+加5+510-减6-42*乘3*412/除5/51%取模(取余)7%52++自增(前):先运算后取值a=2;b=++a;a=3;b=3++自增(后):先取值后运算a=2;b=a++;a=3;b=2- -自减(前):先运算后取值a=2;b=- -aa=1;b=1- -自减(后):先取值后运算a=2;b=a- -a=1;b=2+字符串连接“He”+”llo”“Hello2. 除法运算 /java代码public class AriTest { public static void main(String[] args) { int num1 = 12; int num2 = 5; int result1 = num1 / num2; System.out.println(result1); //2 int result2 = num1 / num2 * num2; System.out.println(result2); //10 double result3 = num1 / num2; System.out.println(result3); //2.0 double result4 = num1 / (num2 + 0.0); //2.4 System.out.println(result4); double result5 = (double) num1 / num2; //2.4 System.out.println(result5); } }2. 取余运算 %1. java代码public class AriTest { public static void main(String[] args) { //取余运算 % System.out.println("12 % 5 = " + 12 % 5); //2 System.out.println("-12 % 5 = " + -12 % 5); //-2 System.out.println("12 % -5 = " + 12 % -5); //2 System.out.println("-12 % -5 = " + -12 % -5); //-2 } }2. Tip结果的符号与被模数(前面那个)的符号相同。经常使用%来判断能否被除尽的情况。3. 前后自增(减) ++ --1.运算规则(前)++ :先自增1,后运算 (后)++ :先运算,后自增1 (前)-- :先自减1,后运算 (后)-- :先运算,后自减1 自增1不会改变本身的数据类型2. java代码public class AriTest { public static void main(String[] args) { //a++ ++a int a1 = 10; int b1 = ++a1; System.out.println("a1 = " + a1 + ",b1 = " + b1);//11 11 int a2 = 10; int b2 = a1++; System.out.println("a2 = " + a2 + ",b2 = " + b2);//10 11 int a3 = 10; //这样子两个都是一样的 ++a3;//a3++; short s1 = 10; s1 = (short) (s1 + 1); //这个是可以的 System.out.println(s1); //11 s1++; //自增1不会改变本身的数据类型 System.out.println(s1); //12 //--a a-- int a4 = 10; int b4 = --a4; System.out.println("a4 = " + a4 + ",b4 = " + b4); //9 9 } }2. 赋值运算符1. java代码public class SetValueTest { public static void main(String[] args) { int i1 = 10; int j1 = 10; int i2 = 10, j2 = 20; //int i3 = j3 = 10; 这个不行 int i3, j3; //连续赋值 i3 = j3 = 10; int num1 = 10; num1 += 2; System.out.println(num1); //12 short s1 = 10; //s1 = s1 + 2;//编译失败 s1 += 2;//结论:不会改变变量本身的数据类型 System.out.println(s1); //12 int n1 = 10; n1 += (n1++) + (++n1);//n1 = n1 + (n1++) + (++n1); System.out.println(n1);//32 } }2. Tip支持连续赋值。 扩展赋值运算符: +=, -=, *=, /=, %= 不会改变变量本身的数据类型3. 比较运算符1. 常用的比较运算符运算符运算范例结果==相等于4==3false!=不等于4!=3true<小于4<3false>大于4>3true<=小于等于4<=3false>=大于等于4>=3trueinstanceof检查是否是类的对象“Hello” instanceof Stringtrue2. java代码public class CompareTest { public static void main(String[] args) { int i = 10; int j = 20; System.out.println(i == j); //false System.out.println(i = j); //20 boolean b1 = true; boolean b2 = false; System.out.println(b2 == b1); //false System.out.println(b2 = b1); //true } }3. Tip比较运算符的结果是boolean类型 区分 == 和 =4.逻辑运算符1. 常用的逻辑运算符& —逻辑与 | —逻辑或 ! —逻辑非 && —短路与 || —短路或 ^ —逻辑异或2.运算规则aba&ba&&ba|ba||b!aa^btruetruetruetruetruetruefalsefalsetruefalsefalsefalsetruetruefalsetruefalsetruefalsefalsetruetruetruetruefalsefalsefalsefalsefalsefalsetruefalse3.结论与:一假则假或:有真则真非:取反异或:一样则假,不一样则真4. java代码public class LogicTest { public static void main(String[] args) { //相同点:& 与 && 的运算结果相同 //当符号左边是true时,二者都会执行符号右边的运算 //当符号左边是false时,&继续执行符号右边的运算。&&不再执行符号右边的运算。 //开发中,推荐使用&& boolean b1 = true; b1 = false; int num1 = 10; if(b1 & (num1++ > 0)){ System.out.println("我现在在北京"); }else{ System.out.println("我现在在南京"); //这个 } System.out.println("num1 = " + num1); //11 boolean b2 = true; b2 = false; int num2 = 10; if(b2 && (num2++ > 0)){ System.out.println("我现在在北京"); }else{ System.out.println("我现在在南京"); //这个 } System.out.println("num2 = " + num2); //10 //相同点:| 与 || 的运算结果相同 //当符号左边是false时,二者都会执行符号右边的运算 //当符号左边是true时,|继续执行符号右边的运算,而||不再执行符号右边的运算 //开发中,推荐使用|| boolean b3 = false; b3 = true; int num3 = 10; if(b3 | (num3++ > 0)){ System.out.println("我现在在北京"); //这个 }else{ System.out.println("我现在在南京"); } System.out.println("num3 = " + num3); //11 boolean b4 = false; b4 = true; int num4 = 10; if(b4 || (num4++ > 0)){ System.out.println("我现在在北京"); //这个 }else{ System.out.println("我现在在南京"); } System.out.println("num4 = " + num4); //10 } }5. Tip逻辑运算符操作的都是boolean类型的变量5. 位运算符(直接对整数的二进制进行的运算)1. 常见的位运算符运算符运算范例<<左移3 << 2 = 12 --> 322=12>>右移3 >> 1 = 1 --> 3/2=1>>>无符号右移3 >>> 1 = 1 --> 3/2=1&与运算6 & 3 = 2|或运算6 | 3 = 7^异或运算6 ^ 3 = 5~取反运算~6 = -72. 位运算符的细节位运算符细节<<空位补0,被移除的高位丢弃,空缺位补0。>>被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1。>>>被移位二进制最高位无论是0或者是1,空缺位都用0补。&二进制位进行&运算,只有1&1时结果是1,否则是0;|二进制位进行 | 运算,只有0 | 0时结果是0,否则是1;^相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0 。 不相同二进制位 ^ 运算结果是1。1^0=1 , 0^1=1~正数取反,各二进制码按补码各位取反。负数取反,各二进制码按补码各位取反3. java代码public class BitTest { public static void main(String[] args) { int i = 21; //i = -21; System.out.println("i << 2 :" + (i << 2)); System.out.println("i << 3 :" + (i << 3)); System.out.println("i << 27 :" + (i << 27)); int m = 12; int n = 5; //写成二进制,1表示true,表示false System.out.println("m & n :" + (m & n)); //4 System.out.println("m | n :" + (m | n)); //13 System.out.println("m ^ n :" + (m ^ n)); //9 System.out.println("~m:" + (~m)); //-13 符号位也取反 } }4. Tip位运算符操作的都是整型的数据<< :在一定范围内,每向左移1位,相当于 * 2\>> :在一定范围内,每向右移1位,相当于 / 26. 三元运算符1. 结构:(条件表达式)? 表达式1 : 表达式22.java代码public class SanYuanTest { public static void main(String[] args) { //取最大值 int m = 12; int n = 5; int max = (m > n) ? m : n; //12 System.out.println(max); double num = (m > n)? 2 : 1.0; //(m > n)? 2 : "n大";//编译错误 n = 12; String maxStr = (m > n)? "m大" : ((m == n)? "m和n相等" : "n大"); System.out.println(maxStr); //获取三个的最大值 int n1 = 12; int n2 = 30; int n3 = -43; int max1 = (n1 > n2)? n1 : n2; int max2 = (max1 > n3)? max1 : n3; System.out.println("三个数中的最大值为:" + max2); } }3. Tip条件表达式的结果为boolean类型.根据条件表达式真或假,true则表达式1,false则表达式2.表达式1 和表达式2 数据类型.要求是一致的。三元运算符可以嵌套使用.可以使用三元运算符的地方,都可以改写为if-else,不能反过来.如果既可以三元运算符,又可以if-else结构,那么优先三元运算符。原因:简洁、执行效率高。2. 运算符优先级(从上到下由高到低) .() {} ; ,R—>L++ -- ~ !(data type)L—>R* / %L—>R+ -L—>R<< >> >>>L—>R< > <= >= instanceofL—>R== !=L—>R&L—>R^L—>R|L—>R&&L—>R||R—>L? :R—>L= *= /= %= += -= <<= >>= >>>= &= ^= |=优先用括号只有单目运算符、三元运算符、赋值运算符是从右向左运算的。
2021年11月21日
75 阅读
0 评论
0 点赞
2021-11-20
java学习笔记3
{music id="1454328658" color="#1989fa" /}一. 字符串String(字符串)属于引用数据类型声明String是,需要一对双引号""String可以和8种基本数据类型做运算,而且只能是连接运算 + ,结果为Stringpublic class StringTest { public static void main(String[] args) { char c = 'a'; int num = 10; String str = "hello"; //加法是从左加到右,String + int 得 String System.out.println(c + num + str); //107hello System.out.println(c + (num + str)); //a10hello System.out.println(c + str + num); //ahello10 System.out.println(str + num + c); //hello10a //注意 + 可以数字加,也可以连接 //做运算用单引号,做字符串拼接用双引号 System.out.println("* *"); //* * System.out.println('*' + '\t' + '*'); //97 System.out.println('*' + "\t" + '*'); //* * System.out.println("*" + "\t" + "*"); //* * System.out.println(3.5f + ""); //3.5 字符串 String str1 = 123 + ""; //int num1 = (int)str1; //str 不能转换成 int int num1 = Integer.parseInt(str1); System.out.println(num1); //123 } }二. 进制1. 常用的进制二进制(binary):0,1 ,满2进1.以0b或0B开头。 十进制(decimal):0-9 ,满10进1。 八进制(octal):0-7 ,满8进1. 以数字0开头表示。 十六进制(hex):0-9及A-F,满16进1. 以0x或0X开头表示。此处的A-F不区分大小写。2. java代码public class BinaryTest { public static void main(String[] args) { int num1 = 0b110; int num2 = 110; int num3 = 0127; int num4 = 0x110A; System.out.println("num1= " + num1); //6 System.out.println("num2= " + num2); //110 System.out.println("num3= " + num3); //87 System.out.println("num4= " + num4); //4362 } }3. 二进制转换成十进制(原码,反码,补码)14为0 0 0 0 1 1 1 0 1 * 2^3 + 1 * 2^2 + 1* 2^1 = 14 正数三码合一 -14为,首位取 1 表示负数 1 0 0 0 1 1 1 0 -14的原码 除符号位外,各个位取反 1 1 1 1 0 0 0 1 -14的反码 反码+1 1 1 1 1 0 0 1 0 -14的补码 计算机底层都以补码的方式来存储数据!2. 十进制转换成二进制(除2取余的逆)13 -> 1 6 -> 0 3 -> 1 1 -> 1 0 -> 0 从下往上读:1101
2021年11月20日
55 阅读
0 评论
0 点赞
2021-11-17
java学习笔记2
{music id="1809674775" color="#1989fa" /}一. 标识符1. 标识符的使用例如:类名,变量名,方法名,接口名,包名2. 标识符的命名规则(不遵守直接报错)由26个英文字母大小写,0-9 ,_或 $ 组成。数字不可以开头。不可以使用关键字和保留字,但能包含关键字和保留字。Java中严格区分大小写,长度无限制。标识符不能包含空格。3. 命名规范(遵守不会报错)包名:多单词组成时所有字母都小写:xxxyyyzzz类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ4. 关键字和保留字1. 注意保留字都是小写2. 关键字查看网站:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html3. 保留字:goto 、const5.Tip为了提高阅读性,起名字要“见名知意”。java采用unicode字符集,也可以使用汉字声明,但是不建议使用。二. 变量1. 定义变量的格式数据类型 变量名 = 变量值;int var = 10;2. 变量的分类按数据类型基本数据类型数值型整数类型 (byte \ short \ int \ long)浮点类型 (float \ double)字符型 (char)布尔型 (boolean)引用数据类型类 (class) (字符串在这里)接口 (interface)数组 (array)按声明的位置(后面细讲)成员变量局部变量3. 整数1. 整数类型类 型占用存储空间表数范围byte1字节=8bit位-128 ~ 127short2字节-215 ~215-1int4字节-231 ~ 231-1 (约21亿)long8字节-263 ~ 263-12. 声明 long 型后面加‘l’或‘L’,不加则默认为 int 型。(long l1 = 1234567890L)4.浮点1. 浮点类型类 型占用存储空间表数范围单精度float4字节-3.403E38 ~ 3.403E38双精度double8字节-1.798E308 ~ 1.798E3082. 声明 float 型后面加‘f’或‘F’,不加则默认为 double 型。(float f1 = 12.3F)3. float表示的数值范围比long大5. 字符1. 字符类型类 型占用存储空间char2字节2. 定义使用单引号 '' (char c1 = 'a')3. 三种表现形式一个字符(数字也算字符)转义字符(\n \t)直接用 Unicode 值来表示字符型常量 (\u0043)5. 布尔类型1. 只允许取值true和false。2. 通常在条件判断,循环结构中使用。6. Tip变量必须先声明,后使用。变量都定义在其作用域内。出了作用域,则失效。同一个作用域内,不可以声明两个同名的变量。三. 基本数据类型的运算规则1. 自动类型提升当容量小的数据类型的变量和容量大的做运算时,结果自动提升为容量大的byte , short , char -> int -> long -> float -> double当byte , short , char做运算时结果都是int2. 强制类型转化(自动类型提升的逆运算)1. 需要使用强转符:()2. 强制转化类型,可能有精度损失被截断了数据溢出
2021年11月17日
56 阅读
0 评论
0 点赞
2021-11-14
java练习1
一.例题1.打印三角形效果:代码:public class triangle { public static void main(String[] args){ //public private for (int i = 0; i < 5; i++){ for (int j = 0; j <= i; j++){ System.out.print("*"); } System.out.println(); } } }结果:* ** *** **** *****2.打印三角形pro效果:代码1:在第一个的基础上另外循环一次,补出来下面的部分public class trianglepro { public static void main(String[] args){ for (int i = 0; i < 5; i++){ for (int j = 0; j <= i; j++){ System.out.print("*"); } System.out.println(); } for (int i = 4; i > 0; i--){ for (int j = 0; j < i; j++){ System.out.print("*"); } System.out.println(); } } }代码2:使用绝对值(有点难)public class trianglepro { public static void main(String[] args){ for (int i = 0; i < 5*2-1; i++){ //Math.abs() 绝对值 for (int j = 0; j < 5 - Math.abs(4-i); j++){ System.out.print("*"); } System.out.println(); } } }结果:* ** *** **** ***** **** *** ** *3.打印三角形promax效果:代码:public class trianglepromax { public static void main(String[] args){ for (int i = 0; i < 5*2-1; i++) { for (int j = 0; j < Math.abs(4-i); j++) { System.out.print(" "); } for (int j = 0; j < (5-Math.abs(4-i))*2 - 1; j++) { System.out.print(i%2); } System.out.println(); } } }结果: 0 111 00000 1111111 000000000 1111111 00000 111 0 4.打印三角形promax远峰蓝(很离谱)效果代码:import java.awt.*; import javax.swing.JLabel ; import javax.swing.JFrame ; public class TriangleProMaxSierraBlue { public static void main(String args[]){ JFrame frame = new JFrame("TriangleProMaxSierraBlue") ; frame.setLayout(new FlowLayout()); String str=""; for(int i=0;i<5*2-1;i++){ for(int j=0;j<Math.abs(4-i);j++){ str+=" "; } for(int j=0;j<(5-Math.abs(4-i))*2-1;j++){ str+=i%2; } //这里补齐了后面的空格 for(int j=0;j<Math.abs(4-i);j++){ str+=" "; } JLabel lab = new JLabel(str,JLabel.CENTER) ; // 实例化标签对象 Font font = new Font("宋体", Font.PLAIN, 25); lab.setFont(font); lab.setForeground(new Color(173,198,220));; frame.add(lab) ; // 将组件件入到面板之中 str=""; } Dimension dim = new Dimension() ; dim.setSize(200,350) ; //窗体的大小 frame.setSize(dim) ; //设置窗体大小 Point point = new Point(500,100) ; // 设置坐标 frame.setLocation(point) ; //设置窗体坐标 frame.setVisible(true) ; //设置窗体可见 } }结果:就是上面的图片,不再重复5.打印三角形(输入版)代码:import java.util.Scanner; public class triangle_input { public static void main(String[] args){ //这里是输入 Scanner input = new Scanner(System.in); int num = input.nextInt(); for (int i = 0; i < num; i++){ for (int j = 0; j < i + 1; j++){ System.out.print("*"); } System.out.println(); } } } 结果:4 * ** *** ****2.面试题(看不懂,一脸懵逼)题目:/* 有一个方阵,方阵中有男生0和女生1。 一个女生上、下、左、右的女生与她本人同属于一朵"花"。 方阵中有多少"花"? */ public class flowerNumber { public static void main(String[] args){ int[][] studentCube={{0,0,1,1,1}, {1,0,1,0,0}, {1,1,1,0,1}, {0,0,0,0,0}, {1,1,0,1,1}}; System.out.print("Number of flowers is "+solution(studentCube)); } public static int solution(int[][] studentCube){ int flowerNum=0; //输入内容 return flowerNum; } }代码:(用到了迭代,看不懂啊)这个是彬酱的有关迭代的递归和迭代public class flowerNumber { public static void main(String[] args){ int[][] studentCube={{0,0,1,1,1}, {1,0,1,0,0}, {1,1,1,0,1}, {0,0,0,0,0}, {1,1,0,1,1}}; System.out.print("Number of flowers is "+solution(studentCube)); } public static int solution(int[][] studentCube){ int flowerNum=0; for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ if(studentCube[i][j]==0) continue; flowerNum++; tagFemaleToMale(studentCube,i,j); } } return flowerNum; } public static void tagFemaleToMale(int[][] studentCube,int i,int j){ studentCube[i][j]=0; if(i<4){ if(studentCube[i+1][j]==1) tagFemaleToMale(studentCube,i+1,j); } if(j<4){ if(studentCube[i][j+1]==1) tagFemaleToMale(studentCube,i,j+1); } if(i>0){ if(studentCube[i-1][j]==1) tagFemaleToMale(studentCube,i-1,j); } if(j>0){ if(studentCube[i][j-1]==1) tagFemaleToMale(studentCube,i,j-1); } } }结果:Number of flowers is 4三.总结要加快进度看视频啊,要来不及了很多绝对值那里需要再看看递归和迭代搞不懂,有机会就学
2021年11月14日
51 阅读
0 评论
0 点赞
1
2