1.选择结构与输出

Switch语句:

Switch表达式必须算出 char,byte,short,int类型数值之一,总是括号括住;Value1----ValueN,对应有相同数据类型且为常量或者常量表达式(1+2,‘A’+2),不能包含变量(如1+x);

从某个匹配语句开始向后执行。break和默认情况default可选

❷条件表达式:System.out.println((a>b)?:a:b);

❸格式化控制台输出Printf:

         %b   布尔值                 %6b        输出布尔值,false前增加一个空格,true增加2个
      %c   字符                   %5c        输出宽度为5,即字符前添加4个空格
      %d   十进制                 %5d        同理,但若数字位数大于5,自动增加宽度
      %f   浮点数                 %10.2f     宽度为10,包括2位小数,即整数部分宽度为7,倘若不够,自动增加宽度
      %e   标准科学计数法       %10.2e     浮点条目宽度至少为10,含小数点,小数点后2位和指数部分。若宽度不够,增加空格
      %s   字符串                 %12s       宽度至少为12,可以自动增加宽度

可以在标识符前置'-'表示左对齐,如%-10.2f。switch表达式和case常量表达式类型应该匹配,在格式字符串中倘若要输出%,应该使用%%。使用方法如:

System.out.printf("%8d%-8s%8.1e",1234,"JAVA",3856.7);

❹布尔类型的值不能与其他类型数值相互转换

❺随机数[0 1]产生函数,Math.random()。

❻运算符优先级:“+,-”左结合(从左到右),所有之外的二元运算符右结合。运算符优先级如下:

后置运算符(++,--) > 前置运算符(++,--)> ! > 比较运算符(小于优先大于,开区间优先闭区间) > 逻辑运算符 > 赋值运算符

2.循环结构

❶循环结构中,不能用浮点数比较相等作为循环控制条件,因为浮点数均为近似。

❷while和for为pretest loop,先判断再执行,do-while则至少执行一步在循环。while和do-while一般用来控制迭代未知的情况,for则是控制已知较多。

❸break控制跳出循环体(包含break的内层循环体),continue则跳出本次循环。

3.GUI对话框

首先 import javax.swing.JOptionPane

❶输入对话框,返回String:

String string=JOptionPane.showInputDialog(null,"Enter a double number","输入圆的半径",JOptionPane.QUESTION_MESSAGE)

❷显示对话框,不返回有效值:

 JOptionPane.showMessageDialog(null, "wlecom to Java","Display Window",JOptionPane_INFORMATION_MESSAGE

❸确认对话框,返回int,  0--yes,1-no, 2-cancel:

int answer=JOptionPane.showConfirmDialog(null,"how do you do?")。

4.Switch循环和GUI对话框测试

import java.util.Scanner;
import javax.swing.JOptionPane;
public class ChoiceStudy {
public static void main(String[] args)
{
//switch使用方法
Scanner input=new Scanner(System.in);
System.out.print("input a number---");
byte data=input.nextByte();
switch(data+1)
{
case 1*2:System.out.println("hello world");
break;
case 2+1:System.out.println("Happy Coding");
break;
default:
System.out.println("Welcome to JAVA");
}
input.close(); //GUI确认对话框
int answer=JOptionPane.showConfirmDialog(null, "What a nice day!\n");
if(answer==JOptionPane.YES_OPTION)//0
System.out.println("Love Life,love youself");
else if(answer==JOptionPane.NO_OPTION)//1
System.out.println("No pains,No gains"); //GUI之确认对话框,输入对话框,显示对话框
//GUI对话框控制循环
int option=JOptionPane.YES_OPTION;
int sum=0;
while(option==JOptionPane.YES_OPTION)
{
String intString=JOptionPane.showInputDialog(null,"Input an int value","Input Window",JOptionPane.QUESTION_MESSAGE);
int number=Integer.parseInt(intString);
sum+=number;
option=JOptionPane.showConfirmDialog(null, "Continue Input?");
}
JOptionPane.showMessageDialog(null, "The sum of all Input number is\n "+sum,"Show Sum Window",JOptionPane.INFORMATION_MESSAGE); }
}

Java探索之旅(3)——选择与循环的更多相关文章

  1. Java基础(三)选择和循环结构

    一.选择结构,条件判断 1.if 语句 一个 if 语句包含一个布尔表达式和一条或多条语句.如果布尔表达式的值为 true,则执行 if 语句中的代码块,否则执行 if 语句块后面的代码. impor ...

  2. Java探索之旅(18)——多线程(2)

    1 线程协调 目的对各线程进行控制,保证各自执行的任务有条不紊且有序并行计算.尤其是在共享资源或者数据情况下. 1.1 易变volatile cache技术虽然提高了访问数据的效率,但是有可能导致主存 ...

  3. Java探索之旅(17)——多线程(1)

    1.多线程  1.1线程 线程是程序运行的基本执行单元.指的是一段相对独立的代码,执行指定的计算或操作.多操作系统执行一个程序时会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被 ...

  4. Java探索之旅(16)——异常处理

    1.异常与异常处理 在<java编程思想>中这样定义 异常:阻止当前方法或作用域继续执行的问题.虽然java中有异常处理机制,但是要明确一点,决不应该用"正常"的态度来 ...

  5. Java探索之旅(13)——字符串类String

    1.初始化 String类是Java预定义类,非基本类型而是引用类型. public class StudyString { public static void main(String[] args ...

  6. Java探索之旅(5)——数组

    1.声明数组变量:        double[] array=new double[10];         double array[]=new double[10];       double[ ...

  7. Java探索之旅(1)——概述与控制台输入

    使用的课本: Java语言程序设计(基础篇)----西电 李娜(译) 原著: Introduction to Java Progrmming(Eighth Edition) -----Y.Daniel ...

  8. Java探索之旅(15)——包装类和字符类

    1.包装类 ❶出于对性能的考虑,并不把基本数据类型作为对象使用,因为适用对象需要额外的系统花销.但是某些Java方法,需要对象作为参数,例如数组线性表ArrayList.add(Object).Jav ...

  9. Java探索之旅(14)——文本I/O与读写

    1文件类File    ❶封装文件或路径的属性.不包括创建和读写文件操作.File实例并不会实际创建文件.不论文件存在与否,可以创建任意文件名的实例.两种实例创建方式如下:               ...

随机推荐

  1. J.U.C重入锁

    ReentrantLock重入锁 ReentrantLock是Java并发包中互斥锁,它有公平锁和非公平锁两种实现方式, 重入的意思就是,如果已经获得了锁,如果执行期间还需要获得这个锁的话,会直接获得 ...

  2. UVALive - 7427 the math 【二分匹配】

    题目链接 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...

  3. session不能使用 ASP.NET MVC

    在web.coonfig中添加 <sessionState mode=" /> 如: <system.web> //... <sessionState mode ...

  4. linux挂载/卸载优盘

    linux载入优盘 查看优盘 ls /dev/ sdb1 挂载到/mnt/usb目录 mount /dev/sdb1 /mnt/usb ntfs优盘需要安装ntfs-3g mount -t ntfs- ...

  5. python第五篇:Linux上将txt导入mysql

    昨天写小项目的时候遇到了一个需求:把txt文档的数据导入到mysql数据库中,开始本来想直接用Mysql Workbench导入TXT文件,但是最后发现不支持TXT导入,结果我吧嗒吧嗒的去把TXT转了 ...

  6. Codeforces 577B Modulo Sum:数学 结论【选数之和为m的倍数】

    题目链接:http://codeforces.com/problemset/problem/448/C 题意: 给你n个数字,给定m. 问你是否能从中选出若干个数字,使得这些数字之和为m的倍数. 题解 ...

  7. 查询速度优化用not EXISTS 代替 not in

    1,not in 速度奇慢,要用 not EXISTS ,速度奇快! 大表效果尤其明显 sql中exists,not exists的用法 exists()后面的子查询被称做相关子查询,他是不返回列表的 ...

  8. java:Map借口及其子类HashMap四

    java:Map借口及其子类HashMap四 使用非系统对象作为key,使用匿名对象获取数据 在Map中可以使用匿名对象找到一个key对应的value. person: public class Ha ...

  9. Android 基础-2.0 拔打电话号码

    1.添加权限 在AndroidManifest.xml 添加打电话权限 <uses-permission android:name="android.permission.CALL_P ...

  10. C#winform拖拽实现获得文件路径

    1.关键知识点说明: 通过DragEnter事件获得被拖入窗口的“信息”(可以是若干文件,一些文字等等),在DragDrop事件中对“信息”进行解析.窗体的AllowDrop属性必须设置成true;且 ...