判断是否能通过编译 1)short s = 5; s = s-2; //判断:no,改为 s =(short)(s-2); 2) byte b = 3; b = b + 4; //判断:no,改为 b = (byte)(b + 4); b = (byte)(b+4); //判断:yes 3) char c = 'a'; int i = 5; double d = .314; double result = c+i+d; //判断:yes a==97, 102.314 4) byte b = 5; short s = 3; short t = s + b; //判断:no,应该是 int类型接收
public class Test4 {
public static void main(String[] args) {
int high = 18;
int wealth = 10009;
boolean handsome = false;
if (high > 180 && wealth > 10000000 && handsome) {
System.out.println("我一定要嫁给他!!!");
} else if (high > 180 || wealth > 10000000 || handsome) {
System.out.println("嫁吧,比上不足,比下有余。");
} else {
System.out.println("不嫁");
}
}
}
分支结构2:switch语句
switch(变量){
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
......
case 常量N:
语句N;
break;
default:
语句;
break;
}
switch语句应用举例
public class Test{
public static void main(String args[]){
int i = 1;
switch (i) {
case 0:
System.out.println("zero");
break;
case 1:
System.out.println("one"); //one
break;
default:
System.out.println("default");
break;
}
}
}
public class Test{
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;
}
}
}
public class Test7 {
public static void main(String[] args) {
int month = 6;
switch (month) {
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
case 12:
case 1:
case 2:
System.out.println("冬季");
break;
}
}
}
public class Test8 {
public static void main(String[] args) {
int month = 3;
int day = 7;
switch (month) {
case 1:
System.out.println("第" + day + "天");
break;
case 2:
day = 31 + day;
System.out.println("第" + day + "天");
break;
case 3:
day = 31 + 28 + day;
System.out.println("第" + day + "天");
break;
case 4:
day = 31 + 28 + 31 + day;
System.out.println("第" + day + "天");
break;
case 5:
day = 31 + 28 + 31 + 30 + day;
System.out.println("第" + day + "天");
break;
case 6:
day = 31 + 28 + 31 + 30 + 31 + day;
System.out.println("第" + day + "天");
break;
case 7:
day = 31 + 28 + 31 + 30 + 31 + 30 + day;
System.out.println("第" + day + "天");
break;
case 8:
day = 31 + 28 + 31 + 30 + 31 + 30 + 31 + day;
System.out.println("第" + day + "天");
break;
case 9:
day = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + day;
System.out.println("第" + day + "天");
break;
case 10:
day = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;
System.out.println("第" + day + "天");
break;
case 11:
day = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day;
System.out.println("第" + day + "天");
break;
case 12:
day = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day;
System.out.println("第" + day + "天");
break;
default:
System.out.println("月份输入错误");
break;
}
}
}
switch语句练习1
使用switch语句改写下列if语句:
int a = 3;
int x = 100;
if(a==1)
x+=5;
else if(a==2)
x+=10;
else if(a==3)
x+=16;
else
x+=34;
修改为:
public class Test9 {
public static void main(String[] args) {
int a = 3;
int x = 100;
switch (a) {
case 1:
x += 5;
break;
case 2:
x += 10;
break;
case 3:
x += 16;
break;
default:
x += 34;
break;
}
System.out.println(a);
System.out.println(x);
}
}
switch和if语句的对比
if 和 switch语句很像,具体什么场景下,应用哪个语句呢?
如果判断的具体数值不多,而且符合byte、 short 、int、 char这四种类型。虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
public class ForLoop {
public static void main(String[] args) {
int result = 0;
for (int i = 1; i <= 100; i++) {
result += i;
}
System.out.println("result=" + result);
}
}
for语句例题
编写程序FooBizBaz.java,从1循环到150并在每行打印一个值,另外在每个3的倍数行上打印出“foo”,在每个5的倍数行上打印“biz”,在每个7的倍数行上打印输出“baz”。 1 2 3 foo 4 5 biz 6 foo 7 baz … 15 foo biz … 105 foo biz baz
public class FooBizBaz {
public static void main(String[] args) {
String str = "";
for (int i = 1; i <= 150; i++) {
str = i + "";
if (i % 3 == 0) {
str = i + "foo";
}
if (i % 5 == 0) {
str += "biz";
}
if (i % 7 == 0) {
str += "baz";
}
System.out.println(str);
}
}
}
for语句练习
1.打印1~100之间所有奇数的和
public class Test13 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 != 0) {
sum += i;
}
}
System.out.println(sum);
}
}
2.打印1~100之间所有是7的倍数的整数的个数及总和(体会设置计数器的思想)
public class Test14 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 7 == 0) {
// System.out.println(i);
sum++;
}
}
System.out.println(sum);
}
}
public class Test15 {
public static void main(String[] args) {
for (int i = 100; i <= 999; i++) {
int bai = i / 100;
int shi = i % 100 / 10;
int ge = i % 100 % 10;
if (i == bai * bai * bai + shi * shi * shi + ge * ge * ge) {
System.out.println(i);
}
}
// int i = 782;
// System.out.println(i / 100);
// System.out.println(i % 100 / 10);
// System.out.println(i % 100 % 10);
}
}
while 循环语句
语法格式:
语法格式
[初始化语句]
while(布尔表达式){
语句或语句块;
[更改语句;]
}
应用举例
public class WhileLoop {
public static void main(String args[]){
int result = 0;
int i=1;
while(i<=100) {
result += i;
i++;
}
System.out.println("result=" + result);
}
}
do-while 循环语句
语法格式:
[初始化语句]
do{
语句或语句块;
[更改语句;]
}while(布尔值测试表达式);
应用举例
public class WhileLoop {
public static void main(String args[]){
int result = 0, i=1;
do{
result += i;
i++;
}while(i<=100);
System.out.println("result=" + result);
}
}
循环语句练习
编写程序一:求1到100之间所有偶数的和。用for和while语句分别完成。
public class Test16 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) {
sum += i;
}
}
System.out.println(sum);
int sum2 = 0;
int k = 1;
while (k <= 100) {
if (k % 2 == 0) {
sum2 += k;
}
k++;
}
System.out.println(sum2);
//总结:还是for好.
//while循环容易把累计条件忘记写了,结果导致内存溢出。
}
}
编写程序二:从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。
public class Test17 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入整数:");
int positive = 0;
int negative = 0;
while (true) { //死循环
int num = input.nextInt();
if (num > 0) {
positive++;
} else if (num < 0) {
negative++;
} else {
break; //跳出死循环
}
}
System.out.println("正数的个数是:" + positive);
System.out.println("负数的个数是:" + negative);
}
}
class PositiveNegative {
public static void main(String[] args) {
//while(true)
Scanner scanner = new Scanner(System.in);
int a = 0;//统计正数的个数
int b = 0;//统计负数的个数
for(;;){
System.out.println("请输入一个整数:");
int z = scanner.nextInt();
if(z>0)
a++;
else if(z<0)
b++;
else
break;
}
System.out.println("正数的个数为:"+a);
System.out.println("负数的个数为:"+b);
}
}
public class Test21 {
public static void main(String[] args) {
int n = 100;
outer:
for (int i = 2; i < n; i++) {
for (int j = 2; j < i; j++) {
if (i % j == 0) {
continue outer;
}
}
System.out.println(i);
}
}
}
public class ContinueTest {
public static void main(String args[]) {
for (int i = 0; i < 100; i++) {
if (i % 10 == 0)
continue;
System.out.println(i);
}
}
}
MyDate dates[];
dates = new MyDate[3];
dates[0] = new MyDate(22, 7, 1964);
dates[1] = new MyDate(1, 1, 2000);
dates[2] = new MyDate(22, 12, 1964);
静态初始化:在定义数组的同时就为数组元素分配空间并赋值。
int a[] = new int[]{ 3, 9, 8};
int[] a = {3,9,8};
MyDate dates[] = {
new MyDate(22, 7, 1964),
new MyDate(1, 1, 2000),
new MyDate(22, 12, 1964)
}
创建基本数据类型数组
Java中使用关键字new创建数组对象。
创建基本数据类型一维数组对象
public class Test{
public static void main(String args[]){
int[] s;
s = new int[10];
for ( int i=0; i<10; i++ ) {
s[i] =2*i+1;
System.out.println(s[i]);
}
}
}
创建对象数组
创建元素为引用类型(对象)的数组
class MyDate{
private int day;
private int month;
private int year;
public MyDate(int d, int m, int y){
day = d;
month = m;
year = y;
}
public void display(){
System.out.println(year + "-" + month + "-" + day);
}
}
public class TestArray {
public static void main(String[] args) {
int nums[] = {2, 3, 5, 7, -9, 3, 4, 1, 6, 0};
int max = nums[0]; //最大值
int min = nums[0]; //最小值
int avg = 0; //平均值
int sum = 0; //和值
for (int i = 0; i < nums.length; i++) {
if (nums[i] > max) {
max = nums[i];
}
if (nums[i] < min) {
min = nums[i];
}
sum += nums[i];
avg = sum / nums.length;
}
System.out.println("max=" + max);
System.out.println("min=" + min);
System.out.println("sum=" + sum);
System.out.println("avg=" + avg);
}
}
import java.util.*;
public class Sort {
public static void main(String[] args) {
int [] number = {5,900,1,5,77,30,64,700};
Arrays.sort(number);
for(int i = 0; i < number.length; i++)
System.out.println(number[i]);
}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
// for循环的进化
// 菜鸟
for (var i = 0; i < Things.length ; i++) {
// Things[i]
}
// 老鸟
for (var i = 0, len = Things.length; i < len; i++) {
// Things[i]
}
// 大师
for (var i = Things.le
the idea is from:
http://blog.csdn.net/zhanxinhang/article/details/6731134
public class MaxSubMatrix {
/**see http://blog.csdn.net/zhanxinhang/article/details/6731134
* Q35
求一个矩阵中最大的二维
使用cordova可以很方便的在手机sdcard中读写文件。
首先需要安装cordova插件:file
命令为:
cordova plugin add org.apache.cordova.file
然后就可以读写文件了,这里我先是写入一个文件,具体的JS代码为:
var datas=null;//datas need write
var directory=&
SELECT cust_id,
SUM(price) as total
FROM orders
WHERE status = 'A'
GROUP BY cust_id
HAVING total > 250
db.orders.aggregate( [
{ $match: { status: 'A' } },
{
$group: {