Pensamento Computacional 1 - Introdução ao Jshell - Expressões com operadores relacionais e lógicos
O jshell
O que é o jshell
Executando o jshell no Codespace
- Criar uma conta grátis no github
- Acessar o link de repositório preparado pelo Prof.Emerson Mello:
- Criar um Codespace a partir do repositório do Prof.Emerson:
ALTERNATIVA: executando o jshell no terminal do Linux
Fazendo os primeiros snippets com o jshell
-
No Codespace do Java, ir no prompt do terminal e chamar o jshell:
-
No ambiente do jshell faça os seus primeiros snippets:
jshell> 3+6 $1 ==> 9 jshell> 2+9 $2 ==> 11
Em computação, o termo snippet se refere a pedaços de código de programação inseridos em um determinado local/arquivo. No jshell são códigos em Java que pode ser colocados de forma iterativa: o programador insere o código e ele já se executa de imediato. No exemplo acima o comando 3+6 foi inserido, executado e o valor resultante da expressão foi colocado em uma variável $1. Da mesma forma, 2+9 foi inserido e executado e o resultado foi colocado em uma variável $2. Observe que o jshell informa o conteúdo destas variáveis.
- Entre com um comando para o jshell listar os snippets. Notar que a "barra" informa que o que se segue é um comando para o jshell. Os snippets são enumerados (id do snippet) e mostrados:
jshell> /list 1 : 3+6 2 : 2+9
- Removendo snippets: remova o primeiro snippet colocado e liste novamente:
jshell> /drop 1 | dropped variable $1 jshell> /list 2 : 2+9
- Resetando o ambiente (zerando tudo) e saindo do jshell.
jshell> 7*3 $3 ==> 21 jshell> /list 2 : 2+9 3 : 7*3 jshell> /reset | Resetting state. jshell> /list jshell> jshell> /exit
Expressões com Operadores Relacionais no Java
Os operadores relacionais permitem computar o resultado de uma relação de grandeza entre dois operandos. O resultado da expressão resulta em um valor booleano (true ou false). Os operadores possíveis são listados abaixo.
Operador | Significado |
---|---|
> | maior que |
>= | maior ou igual que |
< | menor que |
<= | menor ou igual que |
== | igual a (se o operando a esquerda é igual ao da direita) |
!= | diferente de (se o operando a esquerda é diferente do da direita) |
O Jshell é interessante para testar o resultado destas expressões. Vamos a uma sequência de exemplos para "treinar" o uso destes operadores usando o Jshell.
-
jshell> int varA, varB; varA ==> 0 varB ==> 0 jshell> varA = 5; varA ==> 5 jshell> varB = 6; varB ==> 6 jshell> boolean varRes; varRes ==> false jshell> //computação de uma expressão com operadores relacionais jshell> varRes = varB > varA; varRes ==> true
-
jshell> varRes = varA == 5; varRes ==> true
-
jshell> varA varA ==> 5 jshell> varB varB ==> 5 jshell> varB = 100 varB ==> 100 jshell> varA = 2 varA ==> 2 jshell> varB = 100 varB ==> 100 jshell> varRes = 100 * varA > varB varRes ==> true jshell> varRes = 10 * varA > varB varRes ==> false
-
jshell> varRes = ! (varA > varB) varRes ==> true
Algumas observações sobre o código inserido no jshell:
- Não é necessário colocar o ponto e vírgula no final do comando;
- Para ver o valor de uma variável basta entrar com o nome da variável e teclar ENTER
- O operador relacional tem PRECEDÊNCIA sobre o operador de atribuição e sobre o operador de multiplicação. Por isso, nos exemplos acima não foi colocado parênteses. POr questões de clareza é interessante colocar os parênteses.
Criando "programas" (sequências de snippets) no jshell
ALGORITMO MEDIA
VARIAVEIS
NUM1: INTEIRO
NUM2: INTEIRO
MEDIA: REAL
INICIO
LER NUM1
LER NUM2
MEDIA <- (NUM1+NUM2)/2
MOSTRAR MEDIA
FIM
jshell> int num1,num2;
num1 ==> 0
num2 ==> 0
jshell> double media;
media ==> 0.0
jshell> num1 = 5;
num1 ==> 5
jshell> num2 = 7;
num2 ==> 7
jshell> media = (num1 + num2)/2;
media ==> 6.0
jshell> media
media ==> 6.0
jshell> /list
1 : int num1,num2;
2 : int num1,num2;
3 : double media;
4 : num1 = 5;
5 : num2 = 7;
6 : media = (num1 + num2)/2;
7 : media
jshell>
Algumas considerações: A leitura de valores para variáveis foi substituída por uma atribuição simples a variável, já que a introdução de comandos é interativa. Da mesma forma, o valor da variável "media" foi simplesmente mostrado usando o nome da variável.