Mudanças entre as edições de "Pensamento Computacional 1 - Introdução ao Jshell - Expressões com operadores relacionais e lógicos"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 72: Linha 72:
 
</li>
 
</li>
 
</ol>
 
</ol>
 +
 +
<blockquote style="background: lime; border: 1px solid black; padding: 1em;">
 +
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. Por isso, nos exemplos acima não foi colocado parênteses.
 +
</blockquote>
  
 
=Expressões com Operadores Relacionais no Java=
 
=Expressões com Operadores Relacionais no Java=

Edição das 14h33min de 18 de setembro de 2023

O jshell

O que é o jshell

Executando o jshell no Codespace

  1. Criar uma conta grátis no github
  2. Acessar o link de repositório preparado pelo Prof.Emerson Mello:
  3. 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

  1. No Codespace do Java, ir no prompt do terminal e chamar o jshell:
    PensamentoComputacional-PromptShell.png
  2. 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.

  3. 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
    
  4. Removendo snippets: remova o primeiro snippet colocado e liste novamente:
    jshell> /drop 1
    |  dropped variable $1
    
    jshell> /list
    
       2 : 2+9
    
  5. 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
    

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. Por isso, nos exemplos acima não foi colocado parênteses.

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.

Operadores Relacionais
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.

  1. 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
    
  2. jshell> varRes = varA == 5;
    varRes ==> true
    
  3. 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
    

Criando "programas" (sequências de snippets) no jshell

  • Vamos implementar o algoritmo para cálculo de média de 2 números, conforme abaixo:
    ALGORITMO MEDIA
    VARIAVEIS
       NUM1: INTEIRO
       NUM2: INTEIRO
       MEDIA: REAL
    INICIO
       LER NUM1
       LER NUM2
       MEDIA <- (NUM1+NUM2)/2
       MOSTRAR MEDIA
    FIM
    
  • Coloque as instruções uma após a outra, colocando ENTER no final. Observe como as instruções são executadas uma após a outra:
    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.