package com.tarena.day03;
public class SwitchDemo {
/**
* Switch
*/
public static void main(String[] args) {
int score = 100;
String str="不及格";
switch(score / 10)
{
case 10:
//str = "优秀";
//break;
case 9:
str = "优秀";
break;
case 8:
str = "良";
break;
case 7:
str = "中";
break;
case 6:
str = "及格";
break;
//default:str = "不及格";break;
}
System.out.println(str);
}
} for循环
执行顺序 初始化 int i ;判断是否符合条件; 执行循环体;循环变量增加;判断是否符合条件,如此循环,
package com.tarena.day03;
public class ForDemo {
/**
* For循环
*/
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i< 10;i = i+2)
{
sum += i+1;
}
System.out.println(sum);
double s=0.0;
for(int i = 1; i< 10;i = i+2)
{
s += 1.0/(i+1);
}
System.out.println(s);
int[] ary = {3,5,1,8,7,9};
// 0 1 2 3 4 5
System.out.println(ary[2]);
int v = 8;
int index = indexof(ary,v);
System.out.println(index);
}
private static int indexof(int[] ary, int v) {
for(int i = 0;i
{
if(v == ary[i])
return i;
}
return 0;
}
}
逻辑运算符 && || 是短路运算符,& | 不是短路运算,短路运算符更符合我们的逻辑思维。使用短路运算符&&时如果第一个条件为假就不判断第二个条件,使用 || 时如果第一个条件为真则不判断第二个条件。
package com.tarena.day03;
import java.util.Scanner;
public class LogicDemo {
/**
* 工作中都使用短路运算,更符号我们的思维逻辑
*/
public static void main(String[] args) {
int age = 20;
int x = 1;
if (age > 60 && x++ == 2)// 短路
{
}
System.out.println(x);// 1
if (age > 60 & x++ == 2)// 非短路
{
}
// ctrl + shift + f 格式化快捷键
System.out.println(x);// 2
age = 70;
x = 1;
if (age > 60 || x++ == 8)// 短路
{
}
System.out.println(x);// 1
if (age > 60 | x++ == 8)// 非短路
{
}
System.out.println(x);// 2
int rows = 23;
Scanner sc = new Scanner(System.in);
rows = sc.nextInt();
int size = 10;
int pages ;
pages = rows % size == 0 ? rows/size : rows/size + 1;
System.out.println(pages);
}
}
数学运算符 取模运算时 %结果正负与取模符号%左边的操作数相同。自增运算服 ++ -- 变量先运算再赋值。赋值表达式也有值,也就是 = 左边 等数值
package com.tarena.day03;
public class OptDemo {
/**
* 数学运算符演示
*/
public static void main(String[] args) {
int i = 0x7fffffff + 0x7fffffff + 2;
System.out.println(i);// 0 溢出
long l = 0x7fffffff + 0x7fffffff + 2;
System.out.println(l);// 0 溢出
l = 0x7ffffffL + 0x7fffffff + 2;
System.out.println(l);// 0 不溢出
i = 3;
int x = i/2;
System.out.println(x);//1
x = 0/2;
System.out.println(x);//0
x = 3%2;
System.out.println(x);//1
x = -8%5;
System.out.println(x);//-3
int a = 1;int b;
b = a++;
// b=1,a=2
b = ++a;
//b=3,a=3
System.out.println("a:"+a+"b:"+b);// 3 3
a = a++;//缺德表达式
System.out.println(a); //3
double d1,d2;
d1 = 17;
d2 = 6;
System.out.println(d1 /d2);
}
}
package com.tarena.day03;
public class PlusPlusDemo {
/**
* @param args
*/
public static void main(String[] args) {
int x= 1;
int y;
x = (y = (x++));
x =
x++;
System.out.println(x);// 1
int a,b;
a = b = 4;
}
}
switch 条件判断为int类型 包括比int 小的整形, java底层为了题高性能比int小的整形都用32位表示。
case 表达式后如果不写break;那么就会执行下一个case中的内容。case条件可以乱序。
package com.tarena.day03;
public class SwitchDemo {
/**
* Switch
*/
public static void main(String[] args) {
int score = 100;
String str="不及格";
switch(score / 10)
{
case 10:
//str = "优秀";
//break;
case 9:
str = "优秀";
break;
case 8:
str = "良";
break;
case 7:
str = "中";
break;
case 6:
str = "及格";
break;
//default:str = "不及格";break;
}
System.out.println(str);
}
}
作业1:是否有航班
package day03;
import java.util.Scanner;
public class AirlineDemo {
public static void main(String[] args) {
boolean hasAirline = isHasAirline('2');
System.out.print("输入星期 0~6 或 日~六");
Scanner console = new Scanner(System.in);
String str = console.nextLine();
hasAirline = isHasAirline(str.charAt(0));
if (hasAirline) {
System.out.println("有航班");
} else {
System.out.println("无航班");
}
}
public static boolean isHasAirline(char c) {
boolean[] ishas={true,false,true,false,true,false,true};// 日 ~六
boolean result = false;
if(c >= '0' && c<='6')
result = ishas[c - '0'];
else
switch(c)
{
case '日': result = ishas[0]; break;
case '一': result = ishas[1]; break;
case '二': result = ishas[2]; break;
case '三': result = ishas[3]; break;
case '四': result = ishas[4]; break;
case '五': result = ishas[5]; break;
case '六': result = ishas[6]; break;
default:
}
return result;
}
}
作业2:13位商品验证码 Ean13
package day03;
import java.util.Scanner;
/**
* 生成EAN-13 验证码
*/
public class Ean13Barcode {
public static void main(String[] args) {
System.out.print("请输入条形码:");
Scanner console = new Scanner(System.in);
String code = console.nextLine();
System.out.println("验证码:"+ean13(code));
}
/**
* 计算验证码,输入12位条码, 返回带验证码的条码
*/
public static String ean13(String code) {
int sumj=0,sume=0;
int result=0;
for(int i =0;i< code.length()-1;i=i+2)
{
sumj += code.charAt(i) - '0';
sume += code.charAt(i+1) - '0';
}
result = sumj+ sume *3;
result = result %10;
if(result == 10)
result = 0;
else
result = 10 -result;
return code+result;
}
}